[BOI2008] Elect - 背包dp
Posted mollnn
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[BOI2008] Elect - 背包dp相关的知识,希望对你有一定的参考价值。
u1s1我一开始理解错了题
然后基本就相当于一个背包dp了
#include <bits/stdc++.h>
using namespace std;
int n,tot,a[305],f[100005],g[100005],ans;
int main() {
cin>>n;
for(int i=1;i<=n;i++) {
cin>>a[i];
tot+=a[i];
}
sort(a+1,a+n+1);
reverse(a+1,a+n+1);
f[0]=1;
for(int i=1;i<=n;i++) {
for(int j=tot;j>=a[i];--j) {
f[j]|=f[j-a[i]];
if(j-a[i]<=tot/2) g[j]|=f[j-a[i]];
}
}
for(int i=(tot+1)/2;i<=tot;i++) if(g[i]) ans=i;
cout<<ans<<endl;
}
以上是关于[BOI2008] Elect - 背包dp的主要内容,如果未能解决你的问题,请参考以下文章
BZOJ_1334_[Baltic2008]Elect_DP+语文题
[Luogu P1450] [HAOI2008]硬币购物 背包DP+容斥