社区讨论
MLE求救
P2040打开所有的灯参与者 3已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @mk95xu3c
- 此快照首次捕获于
- 2026/01/11 11:17 上个月
- 此快照最后确认于
- 2026/01/11 16:36 上个月
代码会在哪 MLE?我问我自己。
CPP#include<bits/stdc++.h>
using namespace std;
int a[6][6],vis[6][6],ans=10;
bool check(){
for(int i=1;i<=3;i++){
for(int j=1;j<=3;j++){
if(!a[i][j])return 0;
}
}
return 1;
}
void dfs(int x,int y,int n){
if(check()){
ans=min(ans,n);return;
}
if(x<1||y<1||x>3||y>3)return;
if(vis[x][y])return;
if(n==9)return;
//cout<<x<<" "<<y<<endl;
dfs(x-1,y,n);
dfs(x,y+1,n);
dfs(x+1,y,n);
dfs(x,y-1,n);
vis[x][y]=1;
a[x][y]^=1;
if(x>1)a[x-1][y]^=1;
if(y<3)a[x][y+1]^=1;
if(x<3)a[x+1][y]^=1;
if(y>1)a[x][y-1]^=1;
dfs(x-1,y,n+1);
dfs(x,y+1,n+1);
dfs(x+1,y,n+1);
dfs(x,y-1,n+1);
vis[x][y]=0;
a[x][y]^=1;
if(x>1)a[x-1][y]^=1;
if(y<3)a[x][y+1]^=1;
if(x<3)a[x+1][y]^=1;
if(y>1)a[x][y-1]^=1;
}
int main(){
for(int i=1;i<=3;i++){
for(int j=1;j<=3;j++){
cin>>a[i][j];
}
}
dfs(1,1,1);cout<<ans;
}
回复
共 3 条回复,欢迎继续交流。
正在加载回复...