• Codeforces 989C


    传送门:http://codeforces.com/contest/989/problem/C

    这是一个构造问题。

    构造一张网格,网格中的字符为’A’、’B’、’C’、’D’,并且其连通块的个数分别为a、b、c、d。

    首先我们可以考虑两种颜色的情形:

    构造一张网格,网格中的字符为’0’、’1’,并且其连通块的个数分别为a、b,其中a、b均为正整数。于是,至少为’0’、’1’分别构造一个连通块;再分别以连通块为“网”,植入’1’、’0’,植入时应保证植入的点互不连通。如下图所示:

    以上构造法可以推广至四种颜色的情况。如下图所示:

    参考程序如下:

    #include <bits/stdc++.h>
    using namespace std;
    
    char g[50][50];
    
    int main(void)
    {
        int a, b, c, d;
        cin >> a >> b >> c >> d;
        cout << 50 << " " << 50 << endl;
        for (int i = 0; i < 25; i++) {
            for (int j = 0; j < 25; j++) g[i][j] = 'A';
            for (int j = 25; j < 50; j++) g[i][j] = 'B';
        }
        for (int i = 25; i < 50; i++) {
            for (int j = 0; j < 25; j++) g[i][j] = 'C';
            for (int j = 25; j < 50; j++) g[i][j] = 'D';
        }
        a--; b--; c--; d--;
        int x, y;
        x = 1; y = 1;
        while (d) {
            g[x][y] = 'D';
            y += 2;
            if (y >= 25) {
                y = 1;
                x += 2;
            }
            d--;
        }
        x = 1; y = 26;
        while (c) {
            g[x][y] = 'C';
            y+= 2;
            if (y >= 50) {
                y = 26;
                x += 2;
            }
            c--;
        }
        x = 26; y = 1;
        while (b) {
            g[x][y] = 'B';
            y += 2;
            if (y >= 25) {
                y = 1;
                x += 2;
            }
            b--;
        }
        x = 26; y = 26;
        while (a) {
            g[x][y] = 'A';
            y += 2;
            if (y >= 50) {
                y = 26;
                x += 2;
            }
            a--;
        }
        for (int i = 0; i < 50; i++) {
            for (int j = 0; j < 50; j++) putchar(g[i][j]);
            putchar('
    ');
        }
    }
  • 相关阅读:
    dojo自定义Widget
    奇怪的JS
    Dojo Widget系统(转)
    JS 中Promise 模式
    Structs 原理图
    ArcGIS Engine Style文件操作
    dojo.hitch 原理
    Android:解决cannot find zipalign的问题
    Bootstrap:解决Bootstrap下拉框需要双击才能打开的问题
    Clojure:添加gzip功能
  • 原文地址:https://www.cnblogs.com/siuginhung/p/9172382.html
Copyright © 2020-2023  润新知