原帖子因为latex问题,删除,更改
代码:
#include <iostream>
#include <cstdio>
using namespace std;
int n,k;
const int MAXN=1e5+5;
bool safe[2][MAXN],vis[2][MAXN];
bool dfs(int wa,bool lr,int he)
{
if(he>n) return 1;
if(wa>he) return 0;
if(safe[lr][he]==0) return 0;
if(vis[lr][he]==1) return 0;
vis[lr][he]=1;
return dfs(wa+1,lr,he+1)||dfs(wa+1,lr,he-1)||dfs(wa+1,!lr,he+k);
}
int main()
{
cin>>n>>k;
for(int i=0;i<2;i++){
for(int j=1;j<=n;j++){
char c;
scanf(" %c",&c);
if(c=='X')safe[i][j]=0;
else safe[i][j]=1;
}
}
if(dfs(1,0,1)) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
return 0;
}