UVA
来源:互联网 发布:清华斯维尔软件下载 编辑:程序博客网 时间:2024/06/02 06:42
刚刚10分钟AC的水题
题目已经要求:
1.上下左右各不相同
2.保证解的字典序最小
因此可以想到整个矩阵中最多包含 A B C D E 四个字母,
所以从矩阵 左到右,上到下 枚举就好了
为了简便判断,我们让矩阵存在于 (1,1) - (n,n)之间
ok
#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<set>#include<stack>#include<queue>#include<algorithm>// cout << " === " << endl;using namespace std;typedef long long ll;const int maxn = 100 + 7, INF = 0x3f3f3f3f, mod = 1e9+7;int T, n;char s[maxn][maxn];int dx[4] = {0, -1, 0, 1};int dy[4] = {-1, 0, 1, 0};void init() { for(int i = 0; i < n+2; ++i) for(int j = 0; j < n+2; ++j) s[i][j] = '.'; for(int i = 1; i <= n; ++i) scanf("%s", s[i]+1);}void solve() { for(int i = 1; i <= n; ++i) { for(int j = 1; j <= n; ++j) { if(s[i][j] != '.') continue; for(char c = 'A'; c <= 'E'; ++c) { int f = 1; for(int k = 0; k < 4; ++k) { if(s[i+dx[k]][j+dy[k]] == c) { f = 0; break; } } if(f) { s[i][j] = c; break; } } } } for(int i = 1; i < n+1; ++i) { for(int j = 1; j < n+1; ++j) putchar(s[i][j]); cout << endl; }}int main() { scanf("%d", &T); int kase = 1; while(T--) { scanf("%d", &n); init(); printf("Case %d:\n", kase++); solve(); } return 0;}
阅读全文
1 0
- uva
- UVA
- UVA
- UVA
- uva
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- Go 并发 、并行、线程池
- 邮箱正则表达式
- 设置excel单元格下拉框及下拉框颜色
- iOS开发之Runtime运行时机制
- csv导入mysql提示错误[Error Code] 1290
- UVA
- 7个改变世界的Java项目
- POJ 2739
- React-Native 样式指南
- 探究游戏的前期开发需要了解的问题~
- 面试小总结
- Android Fabric工作原理
- Mutiple-layer_perceptron(MLP)
- python中eval, exec, execfile,和compile