CodeForces 323 A.Black-and-White Cube(构造)
2018-01-05 15:21
369 查看
Description
要求用1×1×1的白色块和黑色块组成一个k×k×k的立方体,使得与每一个块相邻(共面)的块中与其颜色相同的只有两个
Input
一个整数k(1≤k≤100)
Output
如果有解则输出任意一组,即输出k个k×k矩阵(b表示黑色块,w表示白色块)表示一个面,否则输出−1
Sample Input
2
Sample Output
bb
ww
bb
ww
Solution
k为奇数,则必然有一个颜色的块有奇数个,把每个该种颜色的块看作点,相连关系看作边,则该种颜色的块构成一张图,每个点度数为2,必成若干环,且对于一个环,任选一个点,从这个点开始遍历这个环回到这个点,每一步都会让这个点的某一维坐标变化1,所以必然经过偶数步才能回到该点,即该环是偶环,若干偶环中点的个数不可能是奇数,故无解
k为偶数,有两种构造方法,一个是一圈黑一圈白这样往中间填,然后相邻两个面把颜色反转一下,另一种是依次放2×2的黑块和2×2的白块,同样的相邻两个面颜色反转
Code
要求用1×1×1的白色块和黑色块组成一个k×k×k的立方体,使得与每一个块相邻(共面)的块中与其颜色相同的只有两个
Input
一个整数k(1≤k≤100)
Output
如果有解则输出任意一组,即输出k个k×k矩阵(b表示黑色块,w表示白色块)表示一个面,否则输出−1
Sample Input
2
Sample Output
bb
ww
bb
ww
Solution
k为奇数,则必然有一个颜色的块有奇数个,把每个该种颜色的块看作点,相连关系看作边,则该种颜色的块构成一张图,每个点度数为2,必成若干环,且对于一个环,任选一个点,从这个点开始遍历这个环回到这个点,每一步都会让这个点的某一维坐标变化1,所以必然经过偶数步才能回到该点,即该环是偶环,若干偶环中点的个数不可能是奇数,故无解
k为偶数,有两种构造方法,一个是一圈黑一圈白这样往中间填,然后相邻两个面把颜色反转一下,另一种是依次放2×2的黑块和2×2的白块,同样的相邻两个面颜色反转
Code
#include<cstdio> #include<iostream> #include<cstring> #include<algorithm> #include<cmath> #include<vector> #include<queue> #include<map> #include<set> #include<ctime> using namespace std; typedef long long ll; typedef pair<int,int>P; const int INF=0x3f3f3f3f,maxn=100001; int main() { int k; while(~scanf("%d",&k)) { if(k&1)printf("-1\n"); else { char B='b',W='w'; for(int x=0;x<k;x++) { for(int y=0;y<k;y++) { for(int z=0;z<k;z++) if((y/2+z/2)&1)printf("%c",B); else printf("%c",W); printf("\n"); } printf("\n"); swap(B,W); } } } return 0; }
相关文章推荐
- codeforces 746 D. Green and Black Tea (构造)
- codeforces 306C White, Black and White Again
- [CodeForces 276D] Little Girl and Maximum XOR (构造+脑洞)
- codeforces 743 C. Vladik and fractions(构造)
- 【Codeforces 840 A. Leha and Function】& 构造
- Codeforces_841_C Leha and Function(贪心+构造|规律)
- CodeForces 643 B.Bear and Two Paths(构造)
- Codeforces 544B - Sea and Islands(构造)
- [Codeforces 460D] Little Victor and Set (构造)
- codeforces 459C - Pashmak and Buses 【构造题】
- Codeforces 743C-Vladik and fractions(构造)
- codeforces 66D D. Petya and His Friends( 数论+构造)
- cf 323A A. Black-and-White Cube 立体构造 不知道为什么当k为奇数时构造不出来 挺有趣的题目吧
- Codeforces 715A. Plus and Square Root[数学构造]
- codeforces 765 D Artsem and Saunders(构造)
- D. Green and Black Tea 贪心 + 构造
- CodeForces 313 C.Ilya and Matrix(构造)
- Codeforces 476D Dreamoon and Sets 规律+构造
- Codeforces 916 C. Jamie and Interesting Graph (构造)
- CodeForces 66D - Petya and His Friends(构造)