UVALive 7269 Snake Carpet (构造)
题目:传送门。
题意:构造出一个矩阵,使得矩阵含有n条蛇,每条蛇的长度是1到n,并且奇数长度的蛇有奇数个拐弯,偶数长度
的蛇有偶数个拐弯.
奇数和偶数分开构造,奇数可以是:
1357
3357
5557
7777
这样一直构造下去,偶数可以这样:
2266
4466
4466
8888
8888
不断的放右边和放下面.
然后预处理每一个蛇的每一个坐标,然后考虑一下偶数的是放在奇数部分的右边还是下面.
#include <bits/stdc++.h>
using namespace std;
#define maxn 1111 struct point {
int x, y;
};
vector <point> p[maxn];
int n; void init () {
for (int i = ; i <= ; i++) {
p[i].clear ();
}
for (int i = ; i <= ; i++) {
if (i&) {
int x = (i+)/;
int y = x;
for (int j = ; j <= x; j++) {
p[i].push_back ((point) {x, j});
}
for (int j = x-; j >= ; j--) {
p[i].push_back ((point) {j, y});
}
}
else {
if (i == ) {
p[].push_back ((point) {, });
p[].push_back ((point) {, });
}
else if ((i>>)&) {
int y = i>>;
for (int j = ; j <= y; j++) {
p[i].push_back ((point) {j, y});
}
for (int j = y; j >= ; j--) {
p[i].push_back ((point) {j, y+});
}
}
else {
int x = i>>;
for (int j = ; j <= x; j++) {
p[i].push_back ((point) {x, j});
}
for (int j = x; j >= ; j--) {
p[i].push_back ((point) {x+, j});
}
}
}
}
} int main () {
init ();
while (scanf ("%d", &n) == ) {
if (((n+)/)&) {//偶数放在右边
printf ("%d %d\n", (n+)>>, (n/)+(n/)+);
for (int i = ; i <= n; i++) {
for (int j = ; j < p[i].size (); j++) {
if (i&) {
printf ("%d %d%c", p[i][j].x, p[i][j].y, j == p[i].size()- ? '\n':' ');
}
else {
printf ("%d %d%c", p[i][j].x, p[i][j].y+((n+)>>), j == p[i].size()- ? '\n':' ');
}
}
}
}
else {//偶数放在下面
printf ("%d %d\n", (n/)+(n/)+, (n+)>>);
for (int i = ; i <= n; i++) {
for (int j = ; j < p[i].size (); j++) {
if (i&) {
printf ("%d %d%c", p[i][j].x, p[i][j].y, j == p[i].size()- ? '\n':' ');
}
else {
printf ("%d %d%c", p[i][j].x+((n+)>>), p[i][j].y, j == p[i].size()- ? '\n':' ');
}
}
}
}
}
return ;
}
UVALive 7269 Snake Carpet (构造)的更多相关文章
- UVaLive 7269 Snake Carpet (找规律,模拟)
题意:给定一个数字n,表示有n条蛇,然后蛇的长度是 i ,如果 i 是奇数,那么它只能拐奇数个弯,如果是偶数只能拐偶数个,1, 2除外,然后把这 n 条蛇, 放到一个w*h的矩阵里,要求正好放满,让你 ...
- UVALive - 7269 I - Snake Carpet
思路: 多画画就发现从五的时候可以这么填: 六的时候这么填: 七的时候这么填: 看出规律了吗? 没看出的话再画画把. #include <bits/stdc++.h> using name ...
- 构造 hihocoder 1257 Snake Carpet (15北京I)
题目传送门 题意:贪吃蛇,要求长度奇数的蛇转弯次数为正奇数,长度偶数转弯次数为正偶数,且组成矩形.(北大出的题咋都和矩形相关!!!) 分析:构造找规律,想到就简单了.可以构造 宽:(n + 1) / ...
- 【hihocoder 1257 Snake Carpet】构造
2015北京区域赛现场赛第4题. 题面:http://media.hihocoder.com/contests/icpcbeijing2015/problems.pdf OJ链接:http://hih ...
- UVALive 6088 Approximate Sorting 构造题
题目链接:点击打开链接 题意: 给定一个n*n的01矩阵 我们跑一下例子== 4 0111 0000 0100 0110 0123 \|____ 0|0111 1|0000 2|0100 3|0110 ...
- hihoCoder 1257 Snake Carpet(很简单的构造方法)
2015 ACM / ICPC 北京现场赛 I 题 构造 注意一个小坑,每条蛇的输出是要从头到尾输出的. 还要注意的是,不能开数组去模拟构造过程,然后输出,那样会TLE的. #include < ...
- hiho1257 Snake Carpet
题目链接:http://hihocoder.com/problemset/problem/1257 题目大意:有n条蛇 编号为1-n 每条蛇的长度跟编号相等 奇数编号的蛇必须拐奇数次(除了第一条)偶数 ...
- UVaLive 4868 Palindrometer (暴力 / 构造)
题意: 给定一个固定长度的字符串, 字符串是一个含有前导0的数字, 问这个数字加上多少能构成一个回文字符串. 分析: 其实这题有很多种方法, 方法12是我做完后看别人代码总结的, 方法3是我当时想的一 ...
- UVaLive 7637 Balanced String (构造)
题意:给定一个括号的序列,原先的序列是碰到左括号加1,碰到右括号减1,然后把序列打乱,让你找出字典序最小的一个答案. 析:直接从第一个括号判断就好了,优先判断左括号,如果不行就加右括号. 代码如下: ...
随机推荐
- POJ2492 A Bug's Life
Time Limit: 10000MS Memory Limit: 65536K Total Submissions: 33833 Accepted: 11078 Description Ba ...
- 加强版DVD管理系统
这个加强版,只做了新增和查看. 主要是在新增代码那里增加了一些处理: 进入新增操作,一直可以不跳出来,每次新增成功后,问你是否继续,输入y就继续,输入n就不继续 代码如下: import java.u ...
- PL/0编译器(java version) - Interpreter.java
1: package compiler; 2: 3: import java.io.BufferedReader; 4: import java.io.BufferedWriter; 5: imp ...
- PL/0编译器(java version) - Err.java
1: package compiler; 2: 3: import java.io.BufferedWriter; 4: 5: public class Err { 6: 7: publi ...
- IDEA 从SVN检出项目相关配置
1.新建好一个工程,然后通过SVN检出项目 2.检出后一般tomcat的环境是配置好的,点击上方Project Structure按钮,弹出窗体,查看Project项,一般没问题,如果要配置就配置Pr ...
- 初学Hibernate之Query扩展
1.hql参数化查询,不明确值类型的用setParameter方法:明确查询结果为一条记录的用uniqueResult方法查询 注意,参数化查询中方法setString 或 setParameter如 ...
- The C Programming Language (second edition) 实践代码(置于此以作备份)
1. #include <stdio.h> #include <stdlib.h> #include <math.h> #include<time.h> ...
- mysql join详解
下面是例子分析 表A记录如下: aID aNum 1 a20050111 2 a20050112 3 a20050113 4 a20050114 5 a20050115 表B记录如下: bID bNa ...
- 反射中 GetCustomAttributes
public abstract object[] GetCustomAttributes(bool inherit); 这是GetCustomAttributes方法的一个重载,参数为bool类型返回 ...
- VS的工程链接优化的问题
打算在项目中试试 CATCH 这个测试框架.请同事在工程中进行了试验,结果却出现了一点问题. CATCH 和 GTest 之类的框架一样,可以直接在 C++ 文件中定义测试函数,就能自动地注册到测试列 ...