hihocoder1257(构造)(2015北京ACM/ICPC)
题意:
给你n条蛇,a[i]的长度为i,要求组成一个矩形。奇数蛇可折叠奇数次,偶数蛇折叠偶数次,然后按蛇的次序输出
(即一条蛇的输出只能是一个方向的)
2 3
1 2
1 3 2 3
1 1 2 1 2 2
2 5
1 4
1 5 2 5
1 1 2 1 2 2
1 2 1 3 2 3 2 4
3 5
3 4
1 4 1 5
2 4 2 5 3 5
2 2 2 3 3 3 3 2
3 1 2 1 1 1 1 2 1 3
思路:
构造的话一般都是找规律,通过前面的推出后面的:
首先我们可以发现矩形的长宽是取决于n
1: 1 1 2:1 2
3: 2 3 4:2 5
5: 3 4 6:3 7
然后是找矩形的关系
我们可以发现偶数矩形可以由它的前一个组成,即在后面加上
3: 1 3 3 4:1 3 3 4 4
2 2 3 2 2 3 4 4
然后看奇数矩形,通过长宽不停的从前找规律可以发现f[n]与f[n-3]有一定的关系
1 3 3 4 4 1 3 3 4 4 5 7
2 2 3 4 4 --> 2 2 3 4 4 5 7
6 6 6 5 5 5 7
6 6 6 7 7 7 7
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <cstring> using namespace std; void fin(int cur)
{
if(cur == 1)
{
printf("1 1\n");
return ;
}
if(cur == 2)
{
printf("1 1\n");
printf("1 2 1 3\n");
return;
}
if(cur == 3)
{
printf("2 1\n");
printf("1 1 1 2\n");
printf("1 3 2 3 2 2\n");
return;
}
int tx = (cur+1)/2;
int ty = (cur%2)? tx*2-1:tx*2+1; if(cur % 2 == 0)
{
fin(cur-1);
for(int i = 1; i <= cur/2; i ++)
printf("%d %d ",i,ty-1);
for(int i = cur/2; i >= 1; i--)
printf("%d %d ",i,ty);
printf("\n");
return ;
}
else
{
fin(cur-3);
for(int i = 1; i <= (cur-2)/2; i++)
printf("%d %d ",i,ty-1);
for(int i = 1; i <= (cur-2)/2+1; i++)
printf("%d %d ",tx-1,ty-i);
printf("\n"); for(int i = 1; i <= (cur-1)/2; i++)
printf("%d %d ",tx-1,i);
for(int i = 0; i <= (cur-1)/2-1; i++)
printf("%d %d ",tx,(cur-1)/2-i);
printf("\n"); for(int i = 0; i < cur/2+1; i++)
printf("%d %d ",tx,ty-cur/2+i);
for(int i = 0; i < cur/2; i++)
printf("%d %d ",tx-i-1,ty);
printf("\n");
return ;
}
} int main()
{
int n;
while(scanf("%d",&n) != EOF)
{
printf("%d %d\n",(n+1)/2,(n%2)? (n+1)/2*2-1:(n+1)/2*2+1);
fin(n);
}
return 0;
}
hihocoder1257(构造)(2015北京ACM/ICPC)的更多相关文章
- HDU 5874 Friends and Enemies 【构造】 (2016 ACM/ICPC Asia Regional Dalian Online)
Friends and Enemies Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Othe ...
- 2015 ACM / ICPC 亚洲区域赛总结(长春站&北京站)
队名:Unlimited Code Works(无尽编码) 队员:Wu.Wang.Zhou 先说一下队伍:Wu是大三学长:Wang高中noip省一:我最渣,去年来大学开始学的a+b,参加今年区域赛之 ...
- ACM ICPC 2015 Moscow Subregional Russia, Moscow, Dolgoprudny, October, 18, 2015 G. Garden Gathering
Problem G. Garden Gathering Input file: standard input Output file: standard output Time limit: 3 se ...
- ACM ICPC 2015 Moscow Subregional Russia, Moscow, Dolgoprudny, October, 18, 2015 D. Delay Time
Problem D. Delay Time Input file: standard input Output file: standard output Time limit: 1 second M ...
- hdu 5444 Elven Postman(二叉树)——2015 ACM/ICPC Asia Regional Changchun Online
Problem Description Elves are very peculiar creatures. As we all know, they can live for a very long ...
- HDU 4041 Eliminate Witches! (模拟题 ACM ICPC 2011亚洲北京赛区网络赛)
HDU 4041 Eliminate Witches! (模拟题 ACM ICPC 2011 亚洲北京赛区网络赛题目) Eliminate Witches! Time Limit: 2000/1000 ...
- HDU 4046 Panda (ACM ICPC 2011北京赛区网络赛)
HDU 4046 Panda (ACM ICPC 2011北京赛区网络赛) Panda Time Limit: 10000/4000 MS (Java/Others) Memory Limit: ...
- (并查集)Travel -- hdu -- 5441(2015 ACM/ICPC Asia Regional Changchun Online )
http://acm.hdu.edu.cn/showproblem.php?pid=5441 Travel Time Limit: 1500/1000 MS (Java/Others) Memo ...
- (二叉树)Elven Postman -- HDU -- 54444(2015 ACM/ICPC Asia Regional Changchun Online)
http://acm.hdu.edu.cn/showproblem.php?pid=5444 Elven Postman Time Limit: 1500/1000 MS (Java/Others) ...
随机推荐
- XFTP连接主机文件名显示中文乱码且不能下载的解决方法
Xftp连接主机文件名显示中文乱码且不能下载的本地解决方法 原因:Xftp编码格式问题 解决方法:把Xftp的编码格式增加UTF-8 具体步骤:打开Xftp,文件-属性,在打开的属性界面中打开&quo ...
- mui对话框事件
mui.confirm('生成成功,是否跳转到订单页面?','',['跳转','取消'],function(e){ if(e.index==0){ //点击跳转 }else if(e.index==1 ...
- Python内置函数(54)——callable
英文文档: callable(object) Return True if the object argument appears callable, False if not. If this re ...
- Python-字符串及列表操作-Day2
1.数据类型 1.1 变量引出数据类型 变量:用来记录状态变量值的变化就是状态的变化,程序运行的本质就是来处理一系列的变化 1.2 五大基本数据类型: 数字 字符串 列表 元组 字典 1.2.1 数字 ...
- Spring AOP AspectJ
本文讲述使用AspectJ框架实现Spring AOP. 再重复一下Spring AOP中的三个概念, Advice:向程序内部注入的代码. Pointcut:注入Advice的位置,切入点,一般为某 ...
- 新概念英语(1-95)Tickets,please!
Lesson 95 Tickets, please. 请把车票拿出来. Listen to the tape then answer this question. Why did George and ...
- zabbix配置微信报警
首先我们先目睹下微信报警的效果 接下来我们正式开始操作. 一:注册企业微信. 打开企业微信注册:http://work.weixin.qq.com 根据以上提示填入相应的内容,然后注册即可. 二:登录 ...
- memcached企业面试题
面试题如下: 1.Memcached是什么,有什么作用?Memcached是一个开源的,高性能的内存绶存软件,从名称上看Mem就是内存的意思,而Cache就是缓存的意思. Memcached的作用:通 ...
- python的切片操作
切片操作符是序列名后跟一个方括号,方括号中有一对可选的数字,并用冒号分割.注意这与你使用的索引操作符十分相似.记住数是可选的,而冒号是必须的. 切片操作符中的第一个数(冒号之前)表示切片开始的位置,第 ...
- hasattr(obj,attr) 判断前面是否有后面的属性
hasattr(obj,attr) 判断前面是否有后面的属性