codeforces A. Black-and-White Cube 解题报告
题目链接:http://codeforces.com/problemset/problem/323/A
题目意思:给定值 k ,需要输出 k 个 k 行 k 列的单位立方体各表示什么颜色(或者是黑色或者是白色)。需要满足的条件是:如果是白色的单位立方体,那么它有且仅有2个白色的相邻单位立方体;如果是黑色的单位立方体,那么它有且仅有2个黑色的相邻单位立方体。要是给出的k不能构成满足这些条件的立方体,输出-1.
在纸上尝试过用次小的奇数 3 来模拟,发现无论如何都不能满足条件,于是大胆地猜测k是奇数的话是不行的。至于证明就...无能为力啊~希望会的读者能够指点迷津,不胜感激。
而偶数的话,为了简单起见,姑且用 k = 4 来说:
第 1 块和第 2 块:
至于第3块和第4块是和前面的两块是相同的。当然1,2块可以交换,但此时3,4块也要交换。至于其他的6,8,....2n都可以这样推。反正对于每一行,如果第1,2列输出的是 b ,那么下次的第5,6列页数输出 b。也就是说会相隔2个空格(这2个空格当然就是输出w了)。
本人觉得这样的解决方法比较简单,不必费太多的脑筋。读者如果有什么更好的办法,欢迎多多交流。
#include <iostream>
#include <cstdio>
#include <cstdlib>
using namespace std; int main()
{
int k, i, j, l;
while (scanf("%d", &k) != EOF)
{
if (k & )
puts("-1");
else
{
for (l = ; l <= k; l++) // 个
{
if (l & )
{
for (i = ; i <= k; i++) // 行
{
for (j = ; j <= k/; j++) // 列
{
if (j & && (i % == || i % == ))
printf("bb");
else if (!(j & ) && (i % == || i % == ))
printf("ww");
else if (j & && !(i % == || i % == ))
printf("ww");
else
printf("bb");
}
printf("\n");
}
}
else
{
for (i = ; i <= k; i++) // 行
{
for (j = ; j <= k/; j++) // 列
{
if (j & && (i % == || i % == ))
printf("ww");
else if (!(j & ) && (i % == || i % == ))
printf("bb");
else if (j & && !(i % == || i % == ))
printf("bb");
else
printf("ww");
}
printf("\n");
}
}
printf("\n");
}
}
}
return ;
}
codeforces A. Black-and-White Cube 解题报告的更多相关文章
- codeforces C1. The Great Julya Calendar 解题报告
题目链接:http://codeforces.com/problemset/problem/331/C1 这是第一次参加codeforces比赛(ABBYY Cup 3.0 - Finals (onl ...
- codeforces B. Eugeny and Play List 解题报告
题目链接:http://codeforces.com/problemset/problem/302/B 题目意思:给出两个整数n和m,接下来n行给出n首歌分别的奏唱时间和听的次数,紧跟着给出m个时刻, ...
- codeforces 433C. Ryouko's Memory Note 解题报告
题目链接:http://codeforces.com/problemset/problem/433/C 题目意思:一本书有 n 页,每页的编号依次从 1 到 n 编排.如果从页 x 翻到页 y,那么| ...
- codeforces 556B. Case of Fake Numbers 解题报告
题目链接:http://codeforces.com/problemset/problem/556/B 题目意思:给出 n 个齿轮,每个齿轮有 n 个 teeth,逆时针排列,编号为0 ~ n-1.每 ...
- codeforces 510B. Fox And Two Dots 解题报告
题目链接:http://codeforces.com/problemset/problem/510/B 题目意思:给出 n 行 m 列只有大写字母组成的字符串.问具有相同字母的能否组成一个环. 很容易 ...
- codeforces 505A. Mr. Kitayuta's Gift 解题报告
题目链接:http://codeforces.com/problemset/problem/505/A 题目意思:给出一个长度不大于10的小写英文字符串 s,问是否能通过在字符串的某个位置插入一个字母 ...
- codeforces 499A.Inna and Pink Pony 解题报告
题目链接:http://codeforces.com/problemset/problem/499/A 题目意思:有两种按钮:1.如果当前观看的时间是 t,player 可以自动处理下一分钟,姑且理解 ...
- codeforces 374A Inna and Pink Pony 解题报告
题目链接:http://codeforces.com/problemset/problem/374/A 题目意思:给出一个 n 行 m 列 的棋盘,要将放置在坐标点为(i, j)的 candy 移动 ...
- codeforces 471B. MUH and Important Things 解题报告
题目链接:http://codeforces.com/problemset/problem/471/B 题目意思:有 n 个 tasks,编号依次为 1 - n,每个 task 都有一定的难度值来评估 ...
随机推荐
- TClientDataSet的 fastscript封装
TClientDataSet的 fastscript封装 // 陈新光 2017-2-10// TClientDataSet's fastscript unit fs_ClientDataSet; i ...
- Jmeter Summariser report及其可视化
Jmeter summariser report的设置在:bin/jmeter.properties #------------------------------------------------ ...
- 百科知识 tar文件如何打开
tar 是什么文件格式,是干什么用的,用什么打开 tarball压缩格式,源于Linux的一个指令,Windows上可以用WinRAR打开 Linux的实用程序tar最初是为了制作磁带存档而设计的(把 ...
- 百科知识 ass文件如何打开
直接拖入视频即可播放 鼠标右键 用记事本打开 也有一些软件支持比如POPSUB(也比较方便调整时间轴) 如果你是说如何加载字幕的话 用VOBSUB是最好的... ASS是视频的字幕,和视频放在同一文件 ...
- angular - 新建项目 - 2
ng new testNg 新建项目后,从网络上拉取模板(最后缓存下来,我们下次创建项目的时间将会减少80%) 安装过程中,需要我们提供Git账号和姓名 最后,我们进入 useNg 然后,启动服务器 ...
- C 标准库 - <signal.h>
C 标准库 - <signal.h> 简介 signal.h 头文件定义了一个变量类型 sig_atomic_t.两个函数调用和一些宏来处理程序执行期间报告的不同信号. 库变量 下面是头文 ...
- 【Unity3D自学记录】Unity3D之自制小钟表
今天来写一个小钟表,事实上非常easy,就运用到了欧拉角. 首先创建时钟.分钟.秒钟以及4个点(12点.3点.6点.9点)偷懒了~~没弄那么多点. 时钟.分钟.秒钟这三个父级的中心一定要注意,我们旋转 ...
- scheme语言编写执行
scheme是lisp的一种 编辑器能够用emacs.网上有非常多教导怎样编写的 (begin (display "hello") (newline)) 编写完以.scm保存,这里 ...
- 教你使用 Reflexil 反编译.NET
简介 反编译的方式有很多种,其实最靠谱的还是IL反编译. 如果不懂IL可以尝试我这边文章入门:http://www.wxzzz.com/278.html 不过我下面要说的不是IL这种底层的代码反编译, ...
- 【HDOJ 5654】 xiaoxin and his watermelon candy(离线+树状数组)
pid=5654">[HDOJ 5654] xiaoxin and his watermelon candy(离线+树状数组) xiaoxin and his watermelon c ...