#2
yuccn2013-09-21 18:41
|
我的代码:
程序代码:
#include<iostream>
#include<stdlib.h>
#include<string.h>
#include<stdio.h>
using namespace std;
int flag;
char f[3][103];
int visited[3][103];
int hang[4]={0,0,-1,1};
int lie[4]={1,-1,0,0};
int n;
void dfs(int h,int l)
{
visited[h][l]=1;
int i;
for(i=0;i<=3;i++)
{
int h1=h+hang[i];
int l1=l+lie[i];
if(h1>=1&&h1<=2&&l1>=1&&l1<=n)
{
if(h1==1&&l1==n)
{
flag=1;
return ;
}
else
{
if(f[h1][l1]=='.'&&visited[h1][l1]==0)
{
dfs(h1,l1);
}
}
}
}
visited[h][l]=0;
}
void shuchu();
int main()
{
int zong ;
cin>>zong;
while(zong--)
{
int i,j;
flag=0;
for(i=0;i<=2;i++)
for(j=0;j<=n;j++)
f[i][j]='W';
memset(visited,0,sizeof(visited));
cin>>n;
for(i=1;i<=2;i++)
{
for(j=1;j<=n;j++)
cin>>f[i][j];
fflush(stdin);
}
//shuchu();
dfs(1,1);
if(flag==1)cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
return 0;
}
void shuchu()
{
int i,j;
for(i=1;i<=2;i++)
{
for(j=1;j<=n;j++)
cout<<f[i][j];
cout<<endl;
}
}
#include<stdlib.h>
#include<string.h>
#include<stdio.h>
using namespace std;
int flag;
char f[3][103];
int visited[3][103];
int hang[4]={0,0,-1,1};
int lie[4]={1,-1,0,0};
int n;
void dfs(int h,int l)
{
visited[h][l]=1;
int i;
for(i=0;i<=3;i++)
{
int h1=h+hang[i];
int l1=l+lie[i];
if(h1>=1&&h1<=2&&l1>=1&&l1<=n)
{
if(h1==1&&l1==n)
{
flag=1;
return ;
}
else
{
if(f[h1][l1]=='.'&&visited[h1][l1]==0)
{
dfs(h1,l1);
}
}
}
}
visited[h][l]=0;
}
void shuchu();
int main()
{
int zong ;
cin>>zong;
while(zong--)
{
int i,j;
flag=0;
for(i=0;i<=2;i++)
for(j=0;j<=n;j++)
f[i][j]='W';
memset(visited,0,sizeof(visited));
cin>>n;
for(i=1;i<=2;i++)
{
for(j=1;j<=n;j++)
cin>>f[i][j];
fflush(stdin);
}
//shuchu();
dfs(1,1);
if(flag==1)cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
return 0;
}
void shuchu()
{
int i,j;
for(i=1;i<=2;i++)
{
for(j=1;j<=n;j++)
cout<<f[i][j];
cout<<endl;
}
}
答案总是wa,不知道错在哪里,求解析