您的位置:首页 > 其它

POJ_1132_Border

2015-07-20 16:31 134 查看
poj第一个一遍ac的题目

这个题目读懂了逆时针转之后亮的格和点移动方向的关系基本就做出来了。

注意到最后路径闭合因此只用现在的x,y坐标就可以了并不需要起始位置。

如果考察的复杂一点可以走到最后一个点而闭合的工作由coder完成,但也没什么难度。

观察了这个题目有很多格式错误,想起来这个题要求每个输出之后要有一个空行。

#include <iostream>
#include<stdio.h>
#include<string.h>
using namespace std;

int const M=32;
char bit[M][M];

char s[M*M];

int main()
{
int t;
scanf("%d",&t);

int nx,ny; //现在的位置
for(int l=1;l<=t;l++)
{
memset(bit,'.',sizeof(bit));
scanf("%d%d",&nx,&ny);
scanf("%s",s);

int p=0;
while(s[p]!='.')
{
if(s[p]=='N')
{
bit[nx][ny]='X';
ny++;
}
else if(s[p]=='S')
{
bit[nx-1][ny-1]='X';
ny--;
}
else if(s[p]=='W')
{
bit[nx-1][ny]='X';
nx--;
}
else //s[p]=='E'
{
bit[nx][ny-1]='X';
nx++;
}
p++;
}
printf("Bitmap #%d\n",l);
for(int i=M-1;i>=0;i--)
{
for(int j=0;j<M;j++)
{
printf("%c",bit[j][i]);
}
printf("\n");
}
printf("\n");//注意题目中说的空行
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: