题目链接:http://poj.org/problem?id=3752
题意:中文题
解析:模拟题直接模拟就好了,注意下输出
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <vector>
#include <cstring>
#include <queue>
#include <cmath>
#include <map>
using namespace std;
const int maxn = 1e6+100;
const int inf = 0x7ffffff;
char a[1005][1005];
bool judge(int n,int m)
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
if(a[i][j]==0)
return true;
}
}
return false;
}
int main(void)
{
int n,m;
scanf("%d %d",&n,&m);
int tmp = 0;
int t1 = n,t2 = m;
int t3 = 1,t4 = 1;
while(judge(n,m))
{
for(int j=t4;j<=t2;j++)
{
if(tmp>'Z'-'A')
tmp = 0;
a[t3][j] = tmp+'A';
tmp++;
}
t3++;
for(int j=t3;j<=t1;j++)
{
if(tmp>'Z'-'A')
tmp = 0;
a[j][t2] = tmp+'A';
tmp++;
}
if(!judge(n,m))
break;
t2--;
for(int j=t2;j>=t4;j--)
{
if(tmp>'Z'-'A')
tmp = 0;
a[t1][j] = tmp+'A';
tmp++;
}
if(!judge(n,m))
break;
t1--;
for(int j=t1;j>=t3;j--)
{
if(tmp>'Z'-'A')
tmp = 0;
a[j][t4] = tmp+'A';
tmp++;
}
if(!judge(n,m))
break;
t4++;
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
printf(" %c",a[i][j]);
puts("");
}
return 0;
}