for(int i=1; i<=n; i++) { dp[i]=a[i]; for(int j=i-1; j>=1; j--) if(r[j][i]) if(dp[j]+a[i]>dp[i]) { dp[i]=dp[j]+a[i]; pre[i]=j; } if(ans<dp[i]) { ans=dp[i]; pos=i; } }
这里iii不能从2开始,这样ansansans会漏判点1。如果出现所有点都不连通而最大值正好在点1等极端情况就会WA