http://acm.hdu.edu.cn/showproblem.php?pid=5534
说好的区域赛保个铜就好了,但赛后发现我们离银真的只差一点的时候真的感觉非常遗憾。
尤其是队里唯一负责dp的某人...窝→_→
这个水dp赛后分分钟AC啊,然而比赛时窝就是没过。
没过就是没过,没什么借口可找。
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn=2020;
int dp[maxn<<1];
int w[maxn];
int main()
{
int i,j,t,n;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
int sum=0;
int len=(n-1)*2;
for(i=1;i<n;i++)
scanf("%d",&w[i]);
memset(dp,0,sizeof(dp));
len=len-n;
dp[0]=n*w[1];
for(i=2;i<n;i++)
{
for(j=0;j<=len;j++)
if(j>=i-1)
dp[j]=max(dp[j],dp[j-i+1]+w[i]-w[1]);
}
// for(i=0;i<=len;i++) printf("%d ",dp[i]); printf("\n");
printf("%d\n",dp[len]);
}
return 0;
}
原文:http://www.cnblogs.com/bitch1319453/p/4928561.html