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 }

 

转载于:https://www.cnblogs.com/kickit/p/8809568.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值