hdu 1117 Booklet Printing(模拟 分类 水题)
来源:互联网 发布:xp桌面修复软件 编辑:程序博客网 时间:2024/06/05 09:56
传送门
http://acm.hdu.edu.cn/showproblem.php?pid=1117
首先上图,
这表示三张纸订正一本册子的姿势,是一张夹着一张的,明白了这个,就可以水过去了。
这里第一面是12,1
第二面是2,11
第三面(第二张纸)是10,3
......这其实是打印纸张时打印的顺序。
当页码是1的时候,只用输出第一面就行了,情况为 Blank,1(第二面是空白的不用输)
当页码是2的时候,输出的应该是
Blank,1
2,Blank(其实把这个填到最上面的那个图里就能理解了,12和11换成Blank,符合我们翻书的规则)
然后当页码为5的时候,它是这样的:
Blank, 1
2, Blank
Blank, 3
4, 5(为什么是这样,同理,填进去就知道了,你也可以把你自己认为对的填进去检查下)
页码为7的时候是这样的:
Blank, 1
2, 7
6, 3
4, 5
......总之,你打印一页的内容,至少要耗费一张纸(4页)
下面是我的代码,分类来做的,比较弱的代码,结尾有一个思路清晰的代码的链接。
#include<cstdio>#include<iostream>using namespace std;int data[105];int main(){int n,num,i,ant;while(cin>>num,num!=0){//cin>>num;for(i=1;i<=num;i++)data[i]=i;ant=1;printf("Printing order for %d pages:\n",num);if(num%2!=0)//奇数 {int left=2;//第一组情况特殊,总是单独处理,所以左边界从2开始 int right=num;if(num>1)// {if((num+1)/2%2!=0)//5,9,13... 奇数为前面这些数的时候,单独处理,保证页数 {printf("Sheet 1, front: Blank, 1\n");printf("Sheet 1, back : 2, Blank\n");printf("Sheet 2, front: Blank, 3\n");left=4;right=num;printf("Sheet 2, back : %d, %d\n",data[left++],data[right--]);ant+=2;}}while(left<right||ant==1)//这里可以顺便处理下只有1页的特殊情况 {if(ant==1)printf("Sheet %d, front: Blank, %d\n",ant,1);elseprintf("Sheet %d, front: %d, %d\n",ant,data[right--],data[left++]);if(left<right)//甄别普通情况和只有1页的情况 printf("Sheet %d, back : %d, %d\n",ant,data[left++],data[right--]);ant++;}}else//偶数 {int left=1;int right=num;if(num/2%2!=0)//2,6,10... {printf("Sheet %d, front: Blank, %d\n",ant,1);printf("Sheet %d, back : %d, Blank\n",ant,2);left=3;}else//4,8,12... {printf("Sheet %d, front: %d, %d\n",ant,data[right--],data[left++]);printf("Sheet %d, back : %d, %d\n",ant,data[left++],data[right--]);}ant++;while(left<right){printf("Sheet %d, front: %d, %d\n",ant,data[right--],data[left++]);printf("Sheet %d, back : %d, %d\n",ant,data[left++],data[right--]);ant++;}} }return 0;}
http://www.cnblogs.com/dramstadt/archive/2013/08/15/3260652.html
阅读全文
0 0
- hdu 1117 Booklet Printing(模拟 分类 水题)
- poj 1313 Booklet Printing 模拟水题
- 1313 Booklet Printing
- pku 1313 Booklet Printing
- USTC 1005 Booklet Printing
- UVa 637 - Booklet Printing
- zoj 1178 Booklet Printing
- POJ 1313 Booklet Printing
- 程序设计大赛—Booklet Printing
- POJ 1313 Booklet Printing 笔记
- ZOJ 1178 Booklet Printing(书本对折问题)
- booklet
- HDU 5014 Number Sequence(分类模拟)
- HDU 1106 排序(简单分类模拟)
- 分类模拟
- Exercise 9: Printing, Printing ,Printing
- Exercise 8: Printing ,Printing
- hdu 分类
- Java求前100个素数
- JDBC之增删改查
- HDFS IO操作总结
- spring
- JVM 三大性能调优参数-Xms -Xmx -Xss
- hdu 1117 Booklet Printing(模拟 分类 水题)
- 容器
- Coursera机器学习第一周学习笔记(二)——Gradient descent
- 记录gis踩过的坑(一)
- Tomcat学习总结(3)——Tomcat优化详细教程
- 建设一个学习Drupal的网站----------之学习笔记
- markdown语法
- 算法的时间复杂度和空间复杂度
- BZOJ 1036: [ZJOI2008]树的统计Count 树链剖分+线段树