特殊RE求助
  • 板块P1101 单词方阵
  • 楼主Yuley
  • 当前回复7
  • 已保存回复7
  • 发布时间2024/10/2 18:43
  • 上次更新2024/10/2 20:28:54
查看原帖
特殊RE求助
1449772
Yuley楼主2024/10/2 18:43

这是我RE的0分代码:

#include<iostream>
using namespace std;
int num;
string k="yizhong";
int vis[105][105];
char map[105][105];
int dfs(int n,int m,int id,int f){
	if(n<0||n>=num||m<0||m>=num)return 0;
	if(map[n][m]==k[id]){
		if(id==6){
			vis[n][m]=1;
			return 1;
		}
		switch(f){
			case 1:if(dfs(n-1,m-1,id+1,f)){vis[n][m]=1;return 1;}else return 0;
			case 2:if(dfs(n-1,m,id+1,f)){vis[n][m]=1;return 1;}else return 0;
			case 3:if(dfs(n-1,m+1,id+1,f)){vis[n][m]=1;return 1;}else return 0;
			case 4:if(dfs(n,m-1,id+1,f)){vis[n][m]=1;return 1;}else return 0;
			case 5:
				if(dfs(n-1,m-1,id+1,1))
					vis[n][m]=1;
				if(dfs(n-1,m,id+1,2)) 
					vis[n][m]=1;
				if(dfs(n-1,m+1,id+1,3)) 
					vis[n][m]=1;
				if(dfs(n,m-1,id+1,4)) 
					vis[n][m]=1;
				if(dfs(n,m+1,id+1,6)) 
					vis[n][m]=1;
				if(dfs(n+1,m-1,id+1,7)) 
					vis[n][m]=1;
				if(dfs(n+1,m,id+1,8)) 
					vis[n][m]=1;
				if(dfs(n+1,m+1,id+1,9)) 
					vis[n][m]=1;
				break;
			case 6:if(dfs(n,m+1,id+1,f)){vis[n][m]=1;return 1;}else return 0;
			case 7:if(dfs(n+1,m-1,id+1,f)){vis[n][m]=1;return 1;}else return 0;
			case 8:if(dfs(n+1,m,id+1,f)){vis[n][m]=1;return 1;}else return 0;
			case 9:if(dfs(n+1,m+1,id+1,f)){vis[n][m]=1;return 1;}else return 0;
		}
	}else return 0;
}
int main(){
	cin>>num;
	for(int i=0;i<num;i++){
		for(int j=0;j<num;j++){
			cin>>map[i][j];
		}
	}
	for(int i=0;i<num;i++){
		for(int j=0;j<num;j++){
			dfs(i,j,0,5);
		}
	}
	for(int i=0;i<num;i++){
		for(int j=0;j<num;j++){
			if(vis[i][j]==1)cout<<map[i][j];
			else cout<<"*";
		}
		printf("\n");
	}
	return 0;
}

这个是我下载了的测试点1的信息

输入:

8
qyizhong
gydthkjy
nwidghji
orbzsfgz
hhgrhwth
zzzzzozo
iwdfrgng
yyyygggg

输出:

*yizhong
gy******
n*i*****
o**z****
h***h***
z****o**
i*****n*
y******g

我在Dev上输入测试点1的信息是输出正确的,但是洛谷提交却全RE,有那位大佬能给本蒟蒻解释一下这个一般是什么问题吗?

顺便改一改本蒟蒻的代码,回复者必谢~

2024/10/2 18:43
加载中...