欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 手游 > 题解:AT_arc093_b [ABC092D] Grid Components

题解:AT_arc093_b [ABC092D] Grid Components

2025/3/15 4:43:17 来源:https://blog.csdn.net/hjyowl/article/details/146162895  浏览:    关键词:题解:AT_arc093_b [ABC092D] Grid Components

构造题。

首先,有一点很重要,构造的矩阵的两边必须小于 $100$。

所以说,我们可以先考虑构造一个上面一半白色下面一半黑色的矩形(这里直接给他弄 $100\times100$,无所谓)。

然后,如果我们白色少了,那我们就在黑色区域上放上白色的,如果黑色的少了,那么就在白色区域上方(这里放的方法随便怎么样都可以,只要你放的那几个之间不能联通就可以了)。

最简单的一种构造,就是直接在所有第一行到第五十行之间的行数是偶数,列数也是偶数的地方给他换一种颜色,后面那一半的也一样。

代码:

```cpp
// LUOGU_RID: 177226354
#include <bits/stdc++.h>
using namespace std;
const int N = 110;
char a[N][N];
int main(){
    int x,y;
    cin >> x >> y;
    x -- ,y -- ;
    for (int i = 1; i <= 50 ; i++ ){
        for (int j =1; j <= 100; j ++) {
            a[i][j] = '.';
        }
    }    
    for (int i = 51; i <= 100 ; i++ ){
        for (int j =1; j <= 100; j ++) {
            a[i][j] = '#';
        }
    }
    int dx = 2,dy = 2;
    while (y -- ){
        dy += 2;
        a[dx][dy] = '#';
        if (dy == 100){
            dx += 2,dy = 2;
        }
    }
    dx = 52,dy = 2;
    while (x -- ){
        dy += 2;
        a[dx][dy] = '.';
        if (dy == 100){
            dx += 2,dy = 2;
        }
    }
    cout << 100 << "  " << 100 << endl;
    for (int i = 1; i <= 100; i ++ ){
        for (int j = 1;j <= 100; j ++){
            cout << a[i][j];
        }
        cout << endl;
    } 
    return 0;
}
```

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词