找不出问题,求调

P1123 取数游戏

```cpp #include <iostream> #include <cstring> #include <cmath> using namespace std; int t,n,m,a[10][10],vis[10][10],ans,dx[]={1,-1,0,0,1,-1,-1,1},dy[]={0,0,1,-1,1,-1,1,-1},mx=-1; void dfs(int x,int y){ if(y==m+1){ x++; y=1; } if(x==n+1){ mx=max(mx,ans); return; } int xx=0,yy=0; if(!vis[x][y] && x>=1 && x<=n && y>=1 && y<=m){ ans+=a[x][y]; vis[x][y]=1; for(int i=0;i<8;i++){ xx=x+dx[i],yy=y+dy[i]; vis[xx][yy]++;//把=1改成++ } dfs(x,y+1); vis[x][y]=0; for(int i=0;i<8;i++){ xx=x+dx[i],yy=y+dy[i]; vis[xx][yy]--;//把=0改成-- } ans-=a[x][y];} dfs(x,y+1); } int main(){ cin>>t; while(t--){ cin>>n>>m; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ cin>>a[i][j]; } } dfs(1,1); cout<<mx<<endl; memset(a,0,sizeof(a)); memset(vis,0,sizeof(vis)); ans=0; mx=-1; } return 0; } ``` @[Alven1234](/user/653295)
by zqhbxsgs @ 2024-02-15 10:53:54


这题WA了一上午%%%orzorzorz
by Alven1234 @ 2024-02-17 08:43:42


|