CF989C A Mist of Florescence (构造)
solution:
作为一道构造题,这题确实十分符合构造的一些通性----(我们需要找到一些规律,然后无脑循环)。个人认为这题规律很巧妙也很典型:
- n,m不能超过50
- 1<=a,b,c,d<=100(大于1!)
根据题目这两个限制条件,我们不难猜出一个构造方法:
例如:一个B联通块+三个C联通块:
三个不够,来一百个!
注意了吗,我们现在才用11行,足够我们构造剩下三种字母了(以一种字母为背景,所以题目限制中a,b,c,d大于一!!!)
话不多说,上代码(应该够短了吧)
code:
#include<iostream>
using namespace std;
int main(){
int a[4]; puts("44 49"); //这个千万不能忘啊!
cin>>a[4]>>a[1]>>a[2]>>a[3];
for(int i=1;i<=4;++i){
char su='A'+i-1, pi=i==4?'A':su+1;
for(int j=1;j<=5;++j,cout<<su<<endl){
for(int o=1;o<=49;++o)cout<<su; puts("");
for(int o=1;o<=24;++o)cout<<su<<(--a[i]>0?pi:su);
} for(int o=1;o<=49;++o)cout<<su; puts("");
}return 0;
}
细节之处可以细细品味