cf 323A A. Black-and-White Cube 立体构造

系统 1731 0
A. Black-and-White Cube
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

You are given a cube of size k × k × k , which consists of unit cubes. Two unit cubes are considered neighbouring, if they have common face.

Your task is to paint each of k 3 unit cubes one of two colours (black or white), so that the following conditions must be satisfied:

  • each white cube has exactly 2 neighbouring cubes of white color;
  • each black cube has exactly 2 neighbouring cubes of black color.
Input

The first line contains integer k (1 ≤ k ≤ 100) , which is size of the cube.

Output

Print -1 if there is no solution. Otherwise, print the required painting of the cube consequently by layers. Print a k × k matrix in the first k lines, showing how the first layer of the cube should be painted. In the following k lines print a k × k matrix — the way the second layer should be painted. And so on to the last k -th layer. Note that orientation of the cube in the space does not matter.

Mark a white unit cube with symbol " w " and a black one with " b ". Use the format of output data, given in the test samples. You may print extra empty lines, they will be ignored.

Sample test(s)
Input
              1


            
Output
              -1


            
Input
              2


            
Output
              bb

ww



bb

ww


            

题目意思,输出一个k*k*k的立体模型,使每个b的旁边有2个b,每个k的旁边有2个k
题解:

题目说的输出描述有点问题,它说的是先输出你的第1层,再输出k层从1到k的你的模型。实际上只用输出你构造的模型的1-k层。

这里提供两种构造方法
第1种
bbwwbb
bbwwbb
wwbbww
wwbbww
bbwwbb
bbwwbb
这种就是4个4个的。。以后每层就把上一层取反就OK了
还有一种是
bbbbbb
bwwwwb
bwbbwb
bwbbwb
bwwwwb
bbbbbb
类似这种不断将最外层围起来的构造方式,同理,以后的每层就把上一层取反就OK了。。
构造方法不唯一的。


至于 k 为奇数时无解我无法证明这个。。。


 

    /*

 * @author ipqhjjybj

 * @date  20130709

 *

 */

#include <cstdio>

#include <cstdlib>



int main(){

    int k;

    scanf("%d",&k);

    if(k&1) {

        puts("-1");

        return 0;

    }

    for(int i=0;i<k;i++){

        for(int j=0;j<k;j++){

            for(int z=0;z<k;z++){

               putchar(((j>>1)&1)^((z>>1)&1)^(i&1)?'w':'b');

            }

            putchar('\n');

        }

        putchar('\n');

    }

    return 0;

}


  


 

 

cf 323A A. Black-and-White Cube 立体构造


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论