社区讨论

到底哪里错误?

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 条回复,欢迎继续交流。

正在加载回复...