- 搭建双塔
- 2016-08-25 19:04:51 @
这样写第四个点怎么都过不了
for(int i=1;i<=n;i++)
{
for(int j = 0;j<=2000;j++)
{
if(j-a[i]>0)
dp[i][j] = max(dp[i-1][j],dp[i-1][j-a[i]]+a[i]);
dp[i][j] = max(dp[i][j],dp[i-1][j+a[i]]);
if(j-a[i]<=0)
dp[i][j] = max(dp[i][j],dp[i-1][a[i]-j]+j);
}
}
写成这样就过了
{
for(int j = 0;j<=2000;j++)
{
dp[i][j] = max(dp[i-1][j],dp[i-1][j+a[i]]);
if(j-a[i]>0)
dp[i][j] = max(dp[i][j],dp[i-1][j-a[i]]+a[i]);
if(j-a[i]<=0)
dp[i][j] = max(dp[i][j],dp[i-1][a[i]-j]+j);
}
}
这样只是比较顺序有别啊,为什么会一个AC一个WA,我把max函数重写了一遍,还是WA在第4个点了,求解......
2 条评论
-
goodboyboy LV 6 @ 2016-09-14 17:53:59
我也是这样,明明感觉程序对,就是一直过不了第四个
-
2016-09-14 17:53:58@
我也是这样,明明感觉程序对,就是一直过不了第四个
- 1