2020.2.16普及C组 团队背包(team)【纪中】【DP】
发布日期:2021-05-07 13:06:52 浏览次数:21 分类:精选文章

本文共 582 字,大约阅读时间需要 1 分钟。

正解:DP

做完01背包之后
贪心求最大值就好啦!

代码

#include
#include
#include
#include
using namespace std;long long m,n,ans,boss;long long w[2500100],f[2500100];int main(){ freopen("team.in","r",stdin); freopen("team.out","w",stdout); cin>>m>>n; for(int i=1; i<=n; i++) { cin>>w[i]; boss+=w[i]; } f[0]=1; for(int i=1; i<=n; i++) for(int j=boss; j>=w[i]; j--) //DP f[j]=f[j]+f[j-w[i]]; for(int i=boss; i>=1; i--) { ans=ans+f[i]*i; //贪心 m=m-f[i]; if(m<=0) { ans=ans-abs(m)*i; break; } } cout<
上一篇:2020.2.16普及C组 神奇的项链(fett)【纪中】【二分】
下一篇:2020.2.16普及C组 方格纸(square【纪中】【差分】【前缀和】

发表评论

最新留言

关注你微信了!
[***.104.42.241]2025年04月13日 08时48分42秒