Codeforces 989C A Mist of Florescence 构造

Posted zhenghanghu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces 989C A Mist of Florescence 构造相关的知识,希望对你有一定的参考价值。

第二次做构造题,感觉好做不好想啊。

在游戏里面如果你得到一个狗粮罐头,那就一定会有一个关卡你需要使用掉狗粮罐头;但这题里面说n和m不固定,但实际上我们大胆的说n=40,m=50的情况下一定能构造出目标图。

先把n=1-10填满a,11-20填满b,21-30填满c,31-40填满d

然后a里面放b-1个B联通分量,b里面放c-1个C连通分量,c里面放d-1个D连通分量,d里面放a-1个A连通分量。

#include<iostream>
using namespace std;
char g[41][51];//40*50的格子 

int main()
{
    int a,b,c,d; cin>>a>>b>>c>>d;
    a--; b--; c--; d--;
    
       for(int i=1;i<=40;i++){
           for(int j=1;j<=50;j++){
               if(i/10==0 || i==10) g[i][j]=A; 
               else if(i/10==1 || i==20) g[i][j]=B;
               else if(i/10==2 || i==30) g[i][j]=C;
               else g[i][j]=D;
           //    cout<<i<<" "<<j<<" "<<g[i][j]<<endl;
        }
    } 

    //a里面放b,b里面放c,c里面放d,d里面放a
    for(int i=1;i<=10;i+=2){
        if(b==0) break;
        for(int j=1;j<=50;j+=2){
            g[i][j]=B;
            b--;
            if(b==0) break;
        }
    } 
    
    for(int i=11;i<=20;i+=2){
        if(c==0) break;
        for(int j=1;j<=50;j+=2){
            g[i][j]=C;
            c--;
            if(c==0) break;
        }
    } 
    
    for(int i=21;i<=30;i+=2){
        if(d==0) break;
        for(int j=1;j<=50;j+=2){
            g[i][j]=D;
            d--;
            if(d==0) break;
        }
    } 
    
    for(int i=31;i<=40;i+=2){
        if(a==0) break;
        for(int j=1;j<=50;j+=2){
            g[i][j]=A;
            a--;
            if(a==0) break;
        }
    }
    
    cout<<40<<" "<<50<<endl;
    for(int i=1;i<=40;i++){
        for(int j=1;j<=50;j++) cout<<g[i][j];
        cout<<endl;
    }
    
    return 0;
}

 

以上是关于Codeforces 989C A Mist of Florescence 构造的主要内容,如果未能解决你的问题,请参考以下文章

CF989C A Mist of Florescence 构造 思维好题 第八题

CF989C A Mist of Florescence (构造)

Codeforces A Mist of Florescence

Codeforces Round #487 (Div. 2) A Mist of Florescence (暴力构造)

Codeforces Round #487 (Div. 2) C - A Mist of Florescence

Codeforces Round #487 (Div. 2) C - A Mist of Florescence