BZOJ 4247 挂饰 背包

题意:链接方法:背包解析:f[i][j]表示前i个物品剩j个挂钩的最大美观。转移很好写。不过光这样不对。因为有可能前面好多没有挂钩的物品,再往后没办法转移,,所以需要按照第一维排序。代码:;ll;struct node{int a,b;friend istream& operator >> (istream &_,node &x){scanf(“%d%d”,&x.a,&x.b);return _;}}a[N];bool cmp(node a,node b){return a.a>b.a;}ll f[N][N];int main(){int n;scanf(“%d”,&n);for(int i=1;i<=n;i++)cin>>a[i];sort(a+1,a+n+1,cmp);for(int i=0;i<=n;i++){for(int j=0;j<=n+1;j++)f[i][j]=-0x3f3f3f3f;}f[0][1]=0;for(int i=1;i<=n;i++){for(int j=0;j<=n;j++){f[i][j]=max(f[i-1][j],f[i-1][max(j-a[i].a,0)+1]+a[i].b);}}ll ans=-0x3f3f3f3f;for(int i=0;i<=n;i++)ans=max(ans,f[n][i]);printf(“%lld\n”,ans);}

鸟儿爱美,不仅需要羽毛之美,还需要鸣声婉转之美;

BZOJ 4247 挂饰 背包

相关文章:

你感兴趣的文章:

标签云: