博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDOJ 1117 模拟 水
阅读量:6429 次
发布时间:2019-06-23

本文共 2704 字,大约阅读时间需要 9 分钟。

题目链接:

这题理解题意最重要。一张纸,有正反两面,将这张纸对折,则一面又分成了两个半页。将若干张纸这样对折,并将这些纸堆叠起来,可以得到一本小册子。现在就要为这个小册子的每个半页编号。

下图是小册子只有一张纸时的情况。

#include 
#include
using namespace std;const int SHEETS_NUM = 30;class Sheet{public: int frontRight, frontLeft, backLeft, backRight;};Sheet sheets[SHEETS_NUM];void initSheets(int sheetsNum){ for (int i = 1;i <= sheetsNum;i ++) sheets[i].backLeft = sheets[i].backRight = sheets[i].frontLeft = sheets[i].frontRight = -1;}int main (){ int pagesNum; while (scanf("%d",&pagesNum) != -1 && pagesNum != 0) { int sheetsNum; sheetsNum = pagesNum / 4; if (pagesNum % 4 != 0) sheetsNum ++; initSheets(sheetsNum); int sheetId = 1, pageId; //将所有pages叠起来后的右半部分pages编号 for (pageId = 1;pageId <= (sheetsNum * 2) && pageId <= pagesNum;pageId ++) { if (pageId % 2 == 1) sheets[sheetId].frontRight = pageId; else sheets[sheetId].backLeft = pageId; if (pageId % 2 == 0) sheetId ++; } sheetId = sheetsNum; for (pageId = (sheetsNum * 2) + 1;pageId <= pagesNum;pageId ++) { if (pageId % 2 == 1) sheets[sheetId].backRight = pageId; else sheets[sheetId].frontLeft = pageId; if (pageId % 2 == 0) sheetId --; } printf("Printing order for %d pages:\n",pagesNum); for (int sheetId = 1;sheetId <= sheetsNum;sheetId ++) { if ( ! (sheets[sheetId].frontLeft == -1 && sheets[sheetId].frontRight == -1) ) { //前面 printf("Sheet %d, front: ",sheetId); if (sheets[sheetId].frontLeft == -1) printf("Blank, "); else printf("%d, ",sheets[sheetId].frontLeft); if (sheets[sheetId].frontRight == -1) printf("Blank\n"); else printf("%d\n",sheets[sheetId].frontRight); } if ( ! (sheets[sheetId].backLeft == -1 && sheets[sheetId].backRight == -1) ) { //背面 printf("Sheet %d, back : ",sheetId); if (sheets[sheetId].backLeft == -1) printf("Blank, "); else printf("%d, ",sheets[sheetId].backLeft); if (sheets[sheetId].backRight == -1) printf("Blank\n"); else printf("%d\n",sheets[sheetId].backRight); } } } return 0;}

转载于:https://www.cnblogs.com/peaceful-andy/archive/2012/09/04/2671019.html

你可能感兴趣的文章
数据结构—队列
查看>>
C. Adidas vs Adivon
查看>>
BZOJ4241 : 历史研究
查看>>
(LeetCode)两个队列来实现一个栈
查看>>
[WebGL入门]十九,遮挡剔除和深度測试
查看>>
jquery封装常用方法
查看>>
什么是ICE (Internet Communications Engine)
查看>>
移动web开发之屏幕三要素
查看>>
求按小时统计的语句,该怎么处理
查看>>
TRUNCATE,DORP,DELETE
查看>>
Chrome的开发必备小技巧
查看>>
can-i-win(好)
查看>>
Centos6.5下安装protobuf及简单使用
查看>>
[SharePoint] SharePoint 错误集 3
查看>>
高压光耦
查看>>
[转]DPM2012系列之六:在Win7上安装DPM远程管理控制台
查看>>
postgres函数
查看>>
Microsoft AJAX Library Cheat Sheet(5): Number和Error类型的扩展
查看>>
批处理设置Java环境变量/命令行设置Java环境变量
查看>>
POJ 3580 SuperMemo(splay)
查看>>