想了六个小时了不知道怎么改了,求助

P2196 [NOIP1996 提高组] 挖地雷

%%%``` #include<iostream> using namespace std; int a[25],b[25][25],visited[25],p[25],n,mx; int dfs(int k) { int maxx=0,l=0; for(int i=1;i<=n;i++) { if(b[k][i]&&!visited[i]) { visited[i]=1; int t=dfs(i); if(t>maxx) { maxx=t; l=i; } visited[i]=0; } } p[k]=l; return a[k]+maxx; } int main() { cin>>n; for(int i=1;i<=n;i++) { cin>>a[i]; } for(int i=1;i<=(n-1);i++) { for(int j=(i+1);j<=n;j++) { cin>>b[i][j]; //b[j][i]=b[i][j]; } } int ans=0,l; for(int i=1;i<=n;i++) { int t=dfs(i); if(t>ans) { ans=t; l=i; } } cout<<l; while(p[l]) { cout<<' '<<p[l]; l=p[l]; } cout<<endl; cout<<ans<<endl; return 0; } ```
by xxc123 @ 2024-04-23 20:41:59


|