jzoj6309-完全背包【贪心,背包】
生活随笔
收集整理的這篇文章主要介紹了
jzoj6309-完全背包【贪心,背包】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
正題
題目大意
完全背包,不過容量特別大。
解題思路
然后我們可以先做一個1~200001\sim 200001~20000的背包,然后枚舉一個大小,然后將這個大小填入背包知道無法填入為止,然后剩下的空位在再一次背包就好。
codecodecode
#include<cstdio> #include<cstring> #include<algorithm> #define ll long long using namespace std; ll n,m,b[110],f[21000],ans; int main() {freopen("backpack.in","r",stdin);freopen("backpack.out","w",stdout);scanf("%lld%lld",&n,&m);for(ll i=1;i<=n;i++){ll x,y;scanf("%lld%lld",&x,&y);b[x]=max(b[x],y);}for(ll i=1;i<=100;i++)for(ll j=i;j<=20000;j++)f[j]=max(f[j],f[j-i]+b[i]);for(ll i=1;i<=20000;i++)ans=max(ans,(m-100)/i*f[i]+f[m%i+100]);printf("%lld",ans); }總結
以上是生活随笔為你收集整理的jzoj6309-完全背包【贪心,背包】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2015主流电脑配置(2015主流 电脑
- 下一篇: jzoj6308-中间值【分治】