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任意不同的都满足有一对相邻格子!
给你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; }
相关文章推荐
- 通过脚本生成Zabbix Screen报错Incorrect value for field "vsize"
- Build path contains duplicate entry
- 线程通讯--BlockingQueue
- 关于ActionBar中setDisplayHomeAsUpEnabled(true)等方法的问题
- 【LeetCode】115. Distinct Subsequences
- UE4之对象系统
- 开始学习UE4
- HDU 3836 Equivalent Sets(强连通分量)
- codeforces 675A Infinite Sequence
- HDOJ/HDU 2560 Buildings(嗯~水题)
- HDOJ/HDU 2560 Buildings(嗯~水题)
- Java中String、StringBuffer 与StringBuilder的不同
- HDU 1005 NumberSequence
- 【POJ3481】Double Queue——伸展树
- iOS_UITextField整理
- iOS: 使用CGContextRef,CGPath和UIBezierPath来绘画
- DuiLib CreateControl
- Codeforces Round #353 (Div. 2) A. Infinite Sequence 思维题
- 关于DuiLib下 实现关键字高亮、粗体显示的实现
- IOS 本地推送UILocalNotification时间长不弹通知的