最后一个点wa了。。。求大佬。。。

P1690 贪婪的Copy

```cpp #include<bits/stdc++.h> using namespace std; const int M=5000; int n,d[M][M],p,a[M],vis[M],ans=0x3f3f3f3f; void dfs(int x,int y,int z) { if(y==p) { ans=min(ans,z+d[x][n]); return; } for(int i=0; i<p; i++)if(!vis[i]) { vis[i]=1; dfs(a[i],y+1,z+d[x][a[i]]); vis[i]=0; } } int main() { cin>>n; for(int i=1; i<=n; i++) for(int j=1; j<=n; j++) cin>>d[i][j]; for(int k=1; k<=n; k++) for(int i=1; i<=n; i++) for(int j=1; j<=n; j++) if (d[i][j]>d[i][k]+d[k][j]) { d[i][j]=d[i][k]+d[k][j]; } cin>>p; for(int i=0; i<p; i++) { cin>>a[i]; if(a[i]==1||vis[a[i]]) { p--; i--; } vis[a[i]]=1; } memset(vis,0,sizeof(vis)); dfs(1,0,0); cout<<ans; return 0; } ```
by Surpersolo @ 2019-08-13 09:55:30


###### 你应该是数据开小了,爆出了
by Surpersolo @ 2019-08-13 09:55:54


|