題目大意自己看吧:
題目鏈結
題解:mx為所有val中最大的
1、如果n-k>log(mx)的話,就直接把所有數或起來就好了。
2、否則的話就dp,f[i][j]表示前i個和為j所用的最少數,這個很好dp,注意一下會爆空間,滾一下吧。(具體詳見**)
/*by cx_lzx*/
#include#include#include#include#include#includeusing namespace std;
const int n=1e5+10;
const int inf=0x3f3f3f3f;
/*f[i][j]表示前i個和為j所用的最少數*/
int f[200000],g[200000];
int n,k;
int val[n],yu[20];
int mx=0;
int main()
memset(f,inf,sizeof(f));f[0]=0;
memset(g,inf,sizeof(g));
yu[0]=1;
for(int i=1;i<=17;i++) yu[i]=yu[i-1]*2;
/* 爆空間版本
for(int i=0;i<=n-1;i++)
}*/for(int i=0;i<=n-1;i++) }
else }
} printf("%d\n",ans);
}
開學第一天就是周五,明天就可以回家了,然而所有課的老師全都在吹水。。。。。。
啥作業都沒有,讓我一度有些不適應。。。。。。。
又不敢整個晚修都來機房頹qaq,在教室自習真的嚇壞我qaq。旁邊那位大佬一直刷題,感覺都刷了30多頁了,蒟蒻好方。
bzoj4976寶石鑲嵌 DP
description 魔法師小q擁有n個寶石,每個寶石的魔力依次為w 1,w 2,w n。他想把這些寶石鑲嵌到自己的法杖上,來提公升 法杖的威力。不幸的是,小q的法杖上寶石鑲嵌欄太少了,他必須扔掉k個寶石才能將剩下的寶石鑲嵌上去。法杖的 威力等於鑲嵌在上面的所有寶石的魔力按位做或 or 運算的結果...
bzoj4976 dp 寶石鑲嵌
description 魔法師小q擁有n個寶石,每個寶石的魔力依次為w 1,w 2,w n。他想把這些寶石鑲嵌到自己的法杖上,來提公升 法杖的威力。不幸的是,小q的法杖上寶石鑲嵌欄太少了,他必須扔掉k個寶石才能將剩下的寶石鑲嵌上去。法杖的 威力等於鑲嵌在上面的所有寶石的魔力按位做或 or 運算的結果...
bzoj 4976 寶石鑲嵌 動態規劃
魔法師小q擁有n個寶石,每個寶石的魔力依次為w 1,w 2,w n。他想把這些寶石鑲嵌到自己的法杖上,來提公升法杖的威力。不幸的是,小q的法杖上寶石鑲嵌欄太少了,他必須扔掉k個寶石才能將剩下的寶石鑲嵌上去。法杖的威力等於鑲嵌在上面的所有寶石的魔力按位做或 or 運算的結果,請寫乙個程式幫助小q做出最...