社区讨论
到底哪里错误?
AT_utpc2011_4停止問題参与者 1已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @lo85tuq6
- 此快照首次捕获于
- 2023/10/27 13:15 2 年前
- 此快照最后确认于
- 2023/10/27 13:15 2 年前
RT,调了将近1小时了,还是WA+RE
CPP#include <bits/stdc++.h>
using namespace std;
int n,m,vis[51][51][51][51];
int dx[5]={0,1,-1,0,0};//Right Left Down Up
int dy[5]={0,0,0,1,-1};
char ch[51][51];
bool dfs(int y,int x,int me,int d)
{
y=(y+n)%n;
x=(x+m)%m;
if(vis[y][x][me][d])
return 0;
vis[y][x][me][d]=1;
if(ch[y][x]=='<')
d=2;
else if(ch[y][x]=='>')
d=1;
else if(ch[y][x]=='^')
d=4;
else if(ch[y][x]=='v')
d=3;
else if(ch[y][x]=='_')
{
if(!me)
d=1;
else
d=2;
}
else if(ch[y][x]=='|')
{
if(!me)
d=3;
else
d=4;
}
else if(ch[y][x]=='?')
for(int i=1;i<4;i++)
if(dfs(y+dy[i],x+dx[i],me,i))
return 1;
else if(ch[y][x]=='@')
return 1;
else if(ch[y][x]=='+')
me=(me+1)%16;
else if(ch[y][x]=='-')
me=(me+15)%16;
else
me=ch[y][x]-'0';
}
int main()
{
ios::sync_with_stdio(0);
cin>>n>>m;
for(int i=0;i<n;i++)
cin>>ch[i];
if(dfs(0,0,0,1))
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
return 0;
}
回复
共 1 条回复,欢迎继续交流。
正在加载回复...