4976 寶石鑲嵌

2021-08-07 16:03:51 字數 893 閱讀 3474

題目大意自己看吧:

題目鏈結

題解: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做出最...