题意:
给出A和B,要求构造出一个具有A个白色连通块和B个黑色连通块的矩阵。
这个矩阵的长和宽最多为100.
思路:
试想如果横着每个点同类的点隔着一个不同的点,竖着每个同类的点隔着一个不同的点,那么就可以很简单的构造了。。。
代码:
1 #include2 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 }