社区讨论
神牛牪犇求解
学术版参与者 11已保存回复 11
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 11 条
- 当前快照
- 1 份
- 快照标识符
- @mi6zf83u
- 此快照首次捕获于
- 2025/11/20 13:19 4 个月前
- 此快照最后确认于
- 2025/11/20 15:45 4 个月前
求神牛牪犇解错,怎么都排不出
#include
#include<bits/stdc++.h>
using namespace std;
int n,m[1000][1000],num=1;
bool keep=false,vis[1000][1000]={false};
int x[4]={-1,1,0,-1}, y[4]={0,0,-1,1};
char ju[4]={'x','x','y','y'};
//zmhuishu
void dfs1(int ax,int ay,char a){if(m[ax][ay]=='3'){num++; printf("%d",num);return;
}
for(int i=0;i<4;i++){
int newx=ax+x[i];
int newy=ay+y[i];
if((newx!=0)&&(newy!=0)&&(newx>=0)&&(newx<n)&&(newy>=0)&&(newy<n)
&&m[newx][newy]=='1'&&(!vis[newx][newy])){
if(ju[i]!=a){ num++; a=ju[i];
} ax=newx; ay=newy; vis[ax][ay]=true; dfs1(ax,ay,a); vis[newx][newy]=false; } } } int main(){
} ax=newx; ay=newy; vis[ax][ay]=true; dfs1(ax,ay,a); vis[newx][newy]=false; } } } int main(){
int bx,by;
scanf("%d",&n);
for(int i=0;i<n;i++){
for(int a=0;a<n;a++){
scanf("%d",&m[i][a]);
if(m[i][a]=='2'){ bx=i;by=a;
vis[i][a]=true;
}
}
}
char c='t';
dfs1(bx,by,c);
return 0;}
回复
共 11 条回复,欢迎继续交流。
正在加载回复...