arc 093 D – Grid Components
题意:
给出A和B,要求构造出一个具有A个白色连通块和B个黑色连通块的矩阵。
这个矩阵的长和宽最多为100.
思路:
试想如果横着每个点同类的点隔着一个不同的点,竖着每个同类的点隔着一个不同的点,那么就可以很简单的构造了。。。
代码:
1 #include <stdio.h> 2 3 bool mp[105][105]; 4 5 int main() 6 { 7 int a,b; 8 9 scanf("%d%d",&a,&b); 10 11 a--; 12 b--; 13 14 for (int i = 0;i < 50;i++) 15 { 16 for (int j = 0;j < 100;j++) 17 { 18 mp[i][j] = 1; 19 } 20 } 21 22 int x = 0,y = 0; 23 24 while (a) 25 { 26 mp[x][y] = 0; 27 28 a--; 29 30 y += 2; 31 32 if (y >= 100) 33 { 34 x += 2; 35 y = 0; 36 } 37 } 38 39 x = 99,y = 0; 40 41 while (b) 42 { 43 mp[x][y] = 1; 44 45 y += 2; 46 47 b--; 48 49 if (y >= 100) 50 { 51 x -= 2; 52 y = 0; 53 } 54 } 55 56 printf("100 100\n"); 57 58 for (int i = 0;i < 100;i++) 59 { 60 for (int j = 0;j < 100;j++) 61 { 62 if (mp[i][j]) printf("#"); 63 else printf("."); 64 } 65 66 puts(""); 67 } 68 69 return 0; 70 }
康复训练中~欢迎交流!