例题8-2:联合国大楼

来源:互联网 发布:淘宝秒杀助手mac 编辑:程序博客网 时间:2024/05/01 01:21

例题8-2:联合国大楼
题目大意:
有n个国家,要求你设计一栋楼并为这n个国家划分房间,要求国家的房间必须连通,且每两个国家之间必须有一间房间是相邻的
解题思路:
只需要设计两层就可以了,每个国家占第一层的每一行,占第二层的每一列,这样的话就既满足联通又相邻了

#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#include<string>#include<cmath>#include<set>#include<queue>#include<map>#include<stack>#include<vector>#include<list>#include<deque>using namespace std;typedef long long ll;const int maxn = 1e6 + 10;const double eps = 1e-6;const int INF = 1 << 30;int T, n, m;char Map[100];void init(){    for(int i = 0; i < 26; i++)Map[i] = i + 'a';    for(int i = 26; i < 52; i++)Map[i] = i - 26 + 'A';}int main(){    init();    while(cin >> n)    {        cout<<"2 "<<n<<" "<<n<<endl;        for(int i = 0; i < n; i++)        {            for(int j = 0; j < n; j++)            {                printf("%c",Map[i]);            }            printf("\n");        }        cout<<endl;        for(int i = 0; i < n; i++)        {            for(int j = 0; j < n; j++)            {                printf("%c",Map[j]);            }            printf("\n");        }    }    return 0;}