标签:des style http os io for art ar


100 25 0000000000000000000000000 0000000000000000000000000 ...(50 lines omitted)... 00001fe0000000000007c0000 00003fe0000000000007c0000 ...(44 lines omitted)... 0000000000000000000000000 0000000000000000000000000 150 38 00000000000000000000000000000000000000 00000000000000000000000000000000000000 ...(75 lines omitted)... 0000000003fffffffffffffffff00000000000 0000000003fffffffffffffffff00000000000 ...(69 lines omitted)... 00000000000000000000000000000000000000 00000000000000000000000000000000000000 0 0
Case 1: AKW Case 2: AAAAA
思路:根据圈的数量来识别。
#include <cstdio>
#include <algorithm>
using namespace std;
char ts[201],mes[6]={'W','A','K','J','S','D'},ans[10];
bool vis[205][205];
int n,m,mp[205][205],nxt[4][2]={{1,0},{0,1},{-1,0},{0,-1}},num;
void dfs(int x,int y)
{
int i;
for(i=0;i<4;i++)
{
x+=nxt[i][0];
y+=nxt[i][1];
if(x>=0 && x<n && y>=0 && y<m && !vis[x][y] && !mp[x][y])
{
vis[x][y]=1;
dfs(x,y);
}
x-=nxt[i][0];
y-=nxt[i][1];
}
}
void dfs3(int x,int y)
{
int i;
for(i=0;i<4;i++)
{
x+=nxt[i][0];
y+=nxt[i][1];
if(x>=0 && x<n && y>=0 && y<m && !vis[x][y] && !mp[x][y])
{
vis[x][y]=1;
dfs3(x,y);
}
x-=nxt[i][0];
y-=nxt[i][1];
}
}
void dfs2(int x,int y)
{
int i;
for(i=0;i<4;i++)
{
x+=nxt[i][0];
y+=nxt[i][1];
if(x>=0 && x<n && y>=0 && y<m && !vis[x][y])
{
if(mp[x][y])
{
vis[x][y]=1;
dfs2(x,y);
}
else
{
vis[x][y]=1;
num++;
dfs3(x,y);
}
}
x-=nxt[i][0];
y-=nxt[i][1];
}
}
int main()
{
int i,j,t,casenum=1,cnt;
while(~scanf("%d%d",&n,&m) && n)
{
n++;
m*=4;
m++;
for(i=0;i<=n;i++) for(j=0;j<=m;j++) vis[i][j]=0;
for(i=1;i<n;i++)
{
gets(ts);
if(!ts[0])
{
i--;
continue;
}
for(j=0;ts[j];j++)
{
if(ts[j]>='a' && ts[j]<='f')
{
t=ts[j]-'a'+10;
mp[i][j*4+1]=t/8;
mp[i][j*4+2]=t%8/4;
mp[i][j*4+3]=t%4/2;
mp[i][j*4+4]=t%2/1;
}
else
{
t=ts[j]-'0';
mp[i][j*4+1]=t/8;
mp[i][j*4+2]=t%8/4;
mp[i][j*4+3]=t%4/2;
mp[i][j*4+4]=t%2/1;
}
}
}
for(i=0;i<=m;i++) mp[n][i]=0;
for(i=0;i<=n;i++) mp[i][m]=0;
n++;
m++;
vis[0][0]=1;
dfs(0,0);
cnt=0;
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if(mp[i][j] && !vis[i][j])
{
num=0;
vis[i][j]=1;
dfs2(i,j);
ans[cnt++]=mes[num];
}
}
}
sort(ans,ans+cnt);
ans[cnt]=0;
printf("Case %d: ",casenum++);
puts(ans);
}
}
HDU-3839-Ancient Messages(DFS),布布扣,bubuko.com
HDU-3839-Ancient Messages(DFS)
标签:des style http os io for art ar
原文地址:http://blog.csdn.net/faithdmc/article/details/38365649