您的位置:首页 > 产品设计 > UI/UE

UVA - 1605 Building for UN (思路题)

2016-05-17 22:19 393 查看
大体题意:

给你n个国家,让你构造一个联合国大楼,满足不同的国家都有一对相邻的格子(要么是同层中有公共边的格子,要么是相邻层中的同一个格子。)

思路:

书上的思路:

一共只有两层,每层都是n*n,第一层中第i行全是i国家,第二层中第i列都是国家i 暴力输出即可!

这样做很巧妙!

举个例子:

n = 4 情况:

按照这种方式是:

------------

第一层:

AAAA

BBBB

CCCC

DDDD

-----------

第二层:

ABCD

ABCD

ABCD

ABCD

---------

这样可看出A B C D任意不同的都满足有一对相邻格子!

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
char get(int n){
if (n >= 0 && n < 26)return 'A' + n;
return n-26+'a';
}
int main(){
int n,cnt=0;
while(scanf("%d",&n) == 1){
if (cnt++)printf("\n");
printf("%d %d %d\n",2,n,n);
for (int i = 0; i < n; ++i){
for (int j = 0; j < n; ++j)
printf("%c",get(i));
printf("\n");
}
printf("\n");
for (int i = 0; i < n; ++i){
for (int j = 0; j < n; ++j)
printf("%c",get(j));
printf("\n");
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: