【hihocoder 1257 Snake Carpet】构造
2016-05-07 21:13
393 查看
2015北京区域赛现场赛第4题。
题面:http://media.hihocoder.com/contests/icpcbeijing2015/problems.pdf
OJ链接:http://hihocoder.com/problemset/problem/1257
题意:长度依次为1到N的N条蛇,平铺在一个地毯上,互不相交,要求每条长度为奇数(偶数)的蛇恰好有奇数(偶数)个拐点,1、2除外。求可行的构造方案。
我的构造方法如下:
奇偶数分开,奇数始终保持L型向外扩展,偶数保持两行(列)和已有的块拼接。
注意偶数部分每隔2组进行一次90度的旋转,代码体现为判N是否能被4整除。
题面:http://media.hihocoder.com/contests/icpcbeijing2015/problems.pdf
OJ链接:http://hihocoder.com/problemset/problem/1257
题意:长度依次为1到N的N条蛇,平铺在一个地毯上,互不相交,要求每条长度为奇数(偶数)的蛇恰好有奇数(偶数)个拐点,1、2除外。求可行的构造方案。
我的构造方法如下:
奇偶数分开,奇数始终保持L型向外扩展,偶数保持两行(列)和已有的块拼接。
注意偶数部分每隔2组进行一次90度的旋转,代码体现为判N是否能被4整除。
#include <cstdio> using namespace std; int n; int H, W; void printOdd(int x, int y){ printf("%d %d ", x, y); } void printEven(int x, int y){ printf("%d %d ", x, y+H); } int main(){ while(~scanf("%d", &n)){ H = (n+1)/2; W = n&1 ? n : n+1; printf("%d %d\n", H, W); for(int i=1; i<=n; i++){ if(i&1){ int x = H, y = H - i/2; while(x > y){ printOdd(x, y); x--; } printOdd(x, y); y++; while(y <= H){ printOdd(x, y); y++; } }else{ if(n%4==0 || (n+1)%4==0){ int len = i/2; if(i%4 == 0){ int x = H, y = i/2; while(x > H - len + 1){ printEven(x, y); x--; } printEven(x, y); y++; while(x <= H){ printEven(x, y); x++; } }else { int x = H - i/2 + 1, y = 1; while(y < len){ printEven(x, y); y++; } printEven(x, y); x--; while(y >= 1){ printEven(x, y); y--; } } }else{ int len = i/2; if(i%4 == 0){ int x = H - i/2 + 1, y = 1; while(y < len){ printEven(x, y); y++; } printEven(x, y); x--; while(y >= 1){ printEven(x, y); y--; } }else{ int x = H, y = i/2; while(x > H - len + 1){ printEven(x, y); x--; } printEven(x, y); y++; while(x <= H){ printEven(x, y); x++; } } } } printf("\n"); } } return 0; }
相关文章推荐
- 【字符串/尺取法】HDU5672String【BestCoder Round #81 (div.2)】
- android 中math常用方法
- 头文件搜索路径
- hdu 畅通工程系列题目
- Android - Retrofit 基础使用
- Java 基础面试题
- MyEclipse配置Maven
- 在IE9中实现placeholder功能
- [置顶] Unity中集成ShareSDK(3.X)的功能-Android平台
- c++第五次上机实验
- ThreadPoolExecutor详解
- 实战 ASP.NET Web API
- 优先队列和二叉堆
- 非线性的整数规划,大型软件仍不好用
- STM32F4学习笔记3——通用IO
- 全文索引----创建多表solr索引
- 流式布局 自定义控件 特别热
- C经典 结构体数组初始化
- 陶哲轩实分析-第3章-集合论-1-3
- 搭建个人博客