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
");
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 }
原文地址:https://www.cnblogs.com/kickit/p/8809568.html