日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

BZOJ3163 [Heoi2013]Eden的新背包问题

發(fā)布時(shí)間:2025/3/13 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BZOJ3163 [Heoi2013]Eden的新背包问题 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

如果是裸的多重背包就非常簡(jiǎn)單了。。。

用f[i]表示用了cost為i的時(shí)候的最大價(jià)值

所以我們二分某一段[l, r]之間的物品不使用,剩下的都使用的最大值,這時(shí)的f[]數(shù)組可以由之前的f[]數(shù)組得到。。。

所以只要記錄log(n)的f[]數(shù)組即可。。。

?

1 /************************************************************** 2 Problem: 3163 3 User: rausen 4 Language: C++ 5 Result: Accepted 6 Time:468 ms 7 Memory:8512 kb 8 ****************************************************************/ 9 10 #include <cstdio> 11 #include <cstring> 12 #include <algorithm> 13 14 using namespace std; 15 const int N = 1005; 16 const int Cnt_q = 3e5 + 5; 17 const int Maxlen = N * 15 + Cnt_q * 10; 18 19 struct query { 20 int del, money, id; 21 query(){} 22 query(int _d, int _m, int _i) : del(_d), money(_m), id(_i) {} 23 24 inline bool operator < (const query &q) const { 25 return del < q.del; 26 } 27 } q[Cnt_q]; 28 29 int n, mxj, now; 30 int c[N], v[N], t[N]; 31 int ans[Cnt_q]; 32 int f[15][1005]; 33 34 char buf[Maxlen], *C = buf; 35 int Len; 36 37 inline int read() { 38 int x = 0; 39 while (*C < '0' || '9' < *C) ++C; 40 while ('0' <= *C && *C <= '9') 41 x = x * 10 + *C - '0', ++C; 42 return x; 43 } 44 45 void calc(int l, int r, int dep) { 46 int i, j, k, tot; 47 memcpy(f[dep], f[dep - 1], sizeof(f[dep])); 48 for (i = l; i <= r; ++i) { 49 tot = t[i]; 50 for (k = 1; k <= tot; k <<= 1) { 51 for (j = mxj; j >= c[i] * k; --j) 52 f[dep][j] = max(f[dep][j], f[dep][j - c[i] * k] + v[i] * k); 53 tot -= k; 54 } 55 if (!tot) continue; 56 k = tot; 57 for (j = mxj; j >= c[i] * k; --j) 58 f[dep][j] = max(f[dep][j], f[dep][j - c[i] * k] + v[i] * k); 59 } 60 } 61 62 #define mid (l + r >> 1) 63 void work(int l, int r, int dep) { 64 if (l == r) { 65 for (; q[now].del == l; ++now) 66 ans[q[now].id] = f[dep - 1][q[now].money]; 67 return; 68 } 69 calc(mid + 1, r, dep); 70 work(l, mid, dep + 1); 71 calc(l, mid, dep); 72 work(mid + 1, r, dep + 1); 73 } 74 #undef mid 75 76 int main() { 77 Len = fread(C, 1, Maxlen, stdin); 78 buf[Len] = '\0'; 79 int i, x, y, Q; 80 n = read(); 81 for (i = 1; i <= n; ++i) 82 c[i] = read(), v[i] = read(), t[i] = read(); 83 Q = read(); 84 for (i = 1; i <= Q; ++i) { 85 x = read(), y = read(); 86 q[i] = query(x + 1, y, i); 87 mxj = max(mxj, y); 88 } 89 sort(q + 1, q + Q + 1), now = 1; 90 work(1, n, 1); 91 for (i = 1; i <= Q; ++i) 92 printf("%d\n", ans[i]); 93 return 0; 94 } View Code

?

轉(zhuǎn)載于:https://www.cnblogs.com/rausen/p/4340224.html

總結(jié)

以上是生活随笔為你收集整理的BZOJ3163 [Heoi2013]Eden的新背包问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩精品影院 | 日本亚洲精品 | 青草精品视频 | 91精品人妻一区二区三区果冻 | 日韩av自拍偷拍 | 日本一区二区三区免费在线观看 | 日韩人妻无码精品综合区 | 国产福利免费视频 | 免费成人看片 | 精品国产三级 | 歪歪6080 | 欧美成人吸奶水做爰 | 国产一二区在线 | 不卡的av网站 | 蜜桃视频在线观看污 | 国产欧美激情视频 | 封神榜二在线高清免费观看 | 女人脱了内裤趴开腿让男躁 | 午夜精品一区二区三区在线观看 | 亚色一区| 国产视频aaa | 亚洲精品成人影视 | 亚洲国产精品成人 | 超碰91人人| 日韩一区二区三区三四区视频在线观看 | 亚洲人 女学生 打屁股 得到 | 欧美呦呦呦 | 毛片综合 | av久久久久久 | 欧美三区在线观看 | 中文字幕在线网站 | 91麻豆精品国产理伦片在线观看 | 欧美理论在线观看 | 最新日本中文字幕 | 男生插女生的网站 | 亚洲成人精品 | 黄色欧美一级片 | 亚洲爱爱网| 少妇三级 | 清清草在线视频 | 五月婷婷激情五月 | 动漫av网站免费观看 | 日韩av中文在线 | 中文字幕乱码人妻二区三区 | xxxx性视频 | 国产尤物视频在线观看 | 青青草国产在线 | 丰满人妻一区二区三区在线 | 成人午夜精品视频 | 四季av在线一区二区三区 | av不卡在线播放 | 黄色在线视频播放 | 免费成人美女女电影 | 男男一级淫片免费播放 | 欧美在线视频a | 午夜精 | 日本美女久久 | 永久视频| jizz久久| 男人的天堂97 | 婷婷爱五月| 黄色片怎么看 | 精品久久久亚洲 | 国产精品久久久久久妇女 | 国产麻豆电影在线观看 | 精品一二三区久久aaa片 | 亚洲av无一区二区三区久久 | 欧洲av无码放荡人妇网站 | 999精品一区| 婷婷资源网 | 97超碰免费在线观看 | 少妇伦子伦精品无吗 | 国产又粗又硬又长又爽的演员 | 国产做爰免费观看 | 欲色视频 | 一道本在线视频 | av在线激情| 色网在线 | 91国内| 中国女人裸体乱淫 | 亚洲二区在线观看 | 亚洲成肉网 | 亚洲人一区二区三区 | 中文字幕在线观看一区二区三区 | 7777精品视频 | 激情女主播| 欧美人伦 | 青青五月天 | 免费在线看视频 | 国产主播99| 欧美日韩一区三区 | 美女又爽又黄视频 | 国产成人aaaa | 欧美在线免费观看视频 | 狠狠干网址 | 影音先锋精品 | 精品午夜视频 | 日色网站| 夜夜夜网 |