3WA+1TLE
by chen_z @ 2023-07-27 08:34:21
悬二关
by chen_z @ 2023-07-27 08:34:47
“水题”
by Weizhuo_Zhao @ 2023-07-27 08:35:42
@[CSQLYB](/user/654577) 两次 DFS 的时候,第一次会影响第二次,有后效性。
by w9095 @ 2023-07-27 08:50:58
@[w9095](/user/569235) 但是我是把每种可能性全都枚举出来了吧?
by chen_z @ 2023-07-27 08:56:00
@[CSQLYB](/user/654577) 你说的有道理,有没有可能是点 $B$ 有数字?
by w9095 @ 2023-07-27 09:33:46
@[w9095](/user/569235) 啊啊啊?没想到
by chen_z @ 2023-07-27 09:35:35
@[w9095](/user/569235) 好的,多A了一个点
by chen_z @ 2023-07-27 09:36:44
@[w9095](/user/569235) 这是@CSQLYB小号,谢谢您,已关注
by TBClikeZT @ 2023-07-27 09:39:38
@[CSQLYB](/user/654577) 改成这样,就只 T 一个点了:
```cpp
#include<bits/stdc++.h>
#define inf 0x3f3f3f3f
using namespace std;
const int N=30,fx[2]={0,1},fy[2]={1,0};
int ans=-1,n,x,y,z,a[N][N];
void dfs(int x,int y,int sum,bool flag){
// cout<<"dfs("<<x<<","<<y<<","<<sum<<","<<flag<<")\n";
if(x==n&&y==n){
if(flag==0)dfs(1,1,sum,1);
else{
ans=max(ans,sum);
return;
}
}
for(int i=0;i<2;i++){
int nx=x+fx[i],ny=y+fy[i];
if(nx>n||ny>n)continue;
int temp=a[nx][ny];
a[nx][ny]=0;
dfs(nx,ny,sum+temp,flag);
a[nx][ny]=temp;
}
}
int main(){
cin>>n;
while(cin>>x>>y>>z){
if(x==0&&y==0&&z==0)break;
a[x][y]=z;
}
dfs(1,1,a[1][1],0);
cout<<ans;
return 0;
}
```
by w9095 @ 2023-07-27 09:40:18