亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

幾道與背包九講相關的題目(HDU - 1712,3033,2844,2159)

2019-11-10 17:25:15
字體:
來源:轉載
供稿:網友

ACboy needs your help HDU - 1712

很經典的分組背包題目了,每一項課程學習不同的天數會有不同的收益,所以每一門課程的不同學習天數就是一個組別,最多只能選擇其中的一個。 可以用滾動數組優化空間。

#include<iostream>#include<string.h>#include<algorithm>#include<stdio.h>using namespace std;int n,m;int pp[105][105];//pp[n][x]是第n組int dp[105];int main(){ while (scanf("%d%d",&n,&m),n+m){ for (int i = 1; i <= n; i++){ for (int j = 1; j <= m; j++){ scanf("%d", &pp[i][j]); } } memset(dp, 0, sizeof(dp)); for (int i = 1; i <= n; i++){//zu for (int j = m; j >= 0; j--){ for (int k = 1; k <= m; k++){//ge if (j >= k)dp[j] = max(dp[j], dp[j - k] + pp[i][k]); } } } I love sneakers! HDU - 3033

也是分組背包,但是要求的是每組至少每一雙,dp[x][y]表示使用金錢為y時前x組物品中能獲得的最大值,所以只要初始化dp數組為負無窮大,當有一組一雙都買不了時,接下來的遞推結果就都是負數。 dp[i][k] = max(dp[i][k], max(dp[i - 1][k - vec[i][j].need] + vec[i][j].val, dp[i][k - vec[i][j].need] + vec[i][j].val))狀態轉移是比較不買這雙鞋,這組第一次買這雙鞋,這組已經買過鞋了再買這雙鞋選擇最優的狀態。

#include<iostream>#include<string.h>#include<algorithm>#include<stdio.h>#include<vector>using namespace std;int n, m, k;struct p{ int need; int val;};vector<p> vec[12];int dp[12][10005];//dp[x][y]使用金錢為y時前x組物品中能獲得的最大值int main(){ int x, y, z; while (~scanf("%d%d%d", &n, &m, &k)){ for (int i = 1; i <= k; i++)vec[i].clear(); for (int i = 0; i < n; i++){ scanf("%d%d%d", &x, &y, &z); vec[x].push_back({ y, z }); } memset(dp, -0x3f, sizeof(dp)); for (int i = 0; i <= m; i++)dp[0][i] = 0; for (int i = 1; i <= k; i++){ int size = vec[i].size(); for (int j = 0; j < size; j++){ for (int k = m; k >= vec[i][j].need; k--){ dp[i][k] = max(dp[i][k], max(dp[i - 1][k - vec[i][j].need] + vec[i][j].val, dp[i][k - vec[i][j].need] + vec[i][j].val)); } } } if (dp[k][m] >= 0){ printf("%d/n", dp[k][m]); } else{ printf("Impossible/n"); } } return 0;}

Coins HDU - 2844

給出你有的硬幣種類及對應的數量,讓你求出能組成多少種小于等于n的價值。應該可以用多重背包解,這里用的記憶化的方法,dp為bool型,1表示這種狀態可以達到。 used數組記錄當前價值用了幾個當前硬幣,這種方法只適用于此類題。

#include<iostream>#include<string.h>#include<algorithm>#include<stdio.h>using namespace std;int n,m;int a[105];int c[105];int used[100005];bool dp[100005];//前n個物品int main(){ while (scanf("%d%d", &n, &m), m + n){ for (int i = 1; i <= n; i++){ scanf("%d", &a[i]); } for (int i = 1; i <= n; i++){ scanf("%d", &c[i]); } memset(dp, 0, sizeof(dp)); dp[0] = 1; int ans = 0; for (int i = 1; i <= n; i++){ memset(used, 0, sizeof(used)); for (int j = a[i]; j <= m; j++){ if (dp[j - a[i]] && !dp[j] && used[j - a[i]] < c[i]){ dp[j] = 1; used[j] = used[j - a[i]] + 1; ans++; } } } printf("%d/n", ans); } return 0;}

FATE HDU - 2159

有總數限制的背包,通常做法就是給dp數組加維度,dp[a][b]忍耐度使用a,總數量為b時獲得的最大經驗值。dp[j][k] = max(dp[j][k], dp[j - edu[i]][k - 1] + eexp[i])

#include<iostream>#include<string.h>#include<algorithm>#include<stdio.h>using namespace std;int n,m,k,s;int eexp[105];int edu[105];int dp[105][105];//dp[a][b]忍耐度使用a,總數量為b時獲得的最大經驗值int main(){ while (~scanf("%d%d%d%d",&n,&m,&k,&s)){ for (int i = 1; i <= k; i++){ scanf("%d%d", &eexp[i], &edu[i]); } memset(dp, 0, sizeof(dp)); for (int i = 1; i <= k; i++){ for (int k = 1; k <= s; k++){ for (int j = edu[i]; j <= m; j++){ dp[j][k] = max(dp[j][k], dp[j - edu[i]][k - 1] + eexp[i]); } } } int ans = 0x3f3f3f; for (int i = 0; i <= m; i++){ for (int j = 0; j <= s; j++){ if (dp[i][j] >= n){ ans = min(ans, i); } } } if (ans == 0 || ans > m){ printf("%d/n", -1); } if (ans <= m){ printf("%d/n",m-ans); } } return 0;}

關于dp循環遞推時,只要滿足狀態轉移方程中的東西在這之前已經計算過就行,循環的嵌套內外層交換不一定會影響結果。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲第一精品福利| 国产z一区二区三区| 亚洲午夜小视频| 国产精品看片资源| 国产精品自产拍高潮在线观看| 亚洲综合中文字幕在线| 亚洲欧美中文字幕在线一区| 久久亚洲电影天堂| 欧美在线观看视频| 精品国产一区久久久| 国产97在线|日韩| 亚洲久久久久久久久久| 欧美精品激情视频| 免费成人高清视频| 高清欧美性猛交| 成人免费观看49www在线观看| 欧美成人免费在线视频| 色综合久久天天综线观看| 91美女福利视频高清| 国语自产在线不卡| 欧美老肥婆性猛交视频| 久久影视电视剧凤归四时歌| 成人在线中文字幕| 久久噜噜噜精品国产亚洲综合| 青青草精品毛片| 亚洲女在线观看| 久久这里有精品| 欧美精品videossex性护士| 国产在线精品一区免费香蕉| 日韩精品在线观看视频| 精品久久久久久国产91| 欧美大学生性色视频| 亚洲午夜国产成人av电影男同| 亚洲国产欧美一区二区丝袜黑人| 日韩免费在线视频| 91av在线精品| 国产精品视频中文字幕91| www.午夜精品| 热久久免费国产视频| 国产成人精品在线| 色诱女教师一区二区三区| 欧美一区二区三区图| 97在线观看免费| 国产精品jizz在线观看麻豆| 国产精品高清网站| www.精品av.com| 91久久国产精品91久久性色| 国产一区二区三区在线免费观看| 91久久精品国产91久久性色| 欧美三级免费观看| 国产精品成人播放| 欧美成人sm免费视频| 中文字幕在线日韩| 福利精品视频在线| 欧美国产视频日韩| 国产欧美精品日韩精品| 97精品一区二区三区| 18一19gay欧美视频网站| 懂色av中文一区二区三区天美| 中文字幕v亚洲ⅴv天堂| 亚洲第一精品夜夜躁人人躁| 欧美国产在线视频| 欧美乱大交xxxxx| 亚洲视频第一页| 国产精品一久久香蕉国产线看观看| 国产成人一区二区在线| 国产精品久久婷婷六月丁香| 久久影视免费观看| 日韩成人在线视频网站| 一区二区亚洲欧洲国产日韩| 欧美一级片在线播放| 中文字幕日韩免费视频| 亚洲精品免费一区二区三区| 中文字幕亚洲一区在线观看| 色视频www在线播放国产成人| 久久久久久国产精品久久| 亚洲片国产一区一级在线观看| 久久精品国产成人| 亚洲天堂久久av| 亚洲第一综合天堂另类专| 91在线视频导航| 日韩在线观看免费av| 中文字幕久热精品视频在线| 91在线观看免费观看| 欧美激情奇米色| 亚洲精品www久久久久久广东| 国产综合在线观看视频| 欧美性视频精品| 亚洲美女性生活视频| 欧美亚洲第一区| 国产精品视频久| 欧美成人久久久| 97视频在线观看亚洲| 成人黄色影片在线| 国内免费久久久久久久久久久| 日韩在线一区二区三区免费视频| 欧美成人免费视频| 91在线精品视频| 不卡中文字幕av| 亚洲精品久久久久久下一站| 国产精品一久久香蕉国产线看观看| 欧美亚洲国产精品| 久久久精品999| 26uuu国产精品视频| 欧美体内谢she精2性欧美| 疯狂做受xxxx高潮欧美日本| 欧洲成人在线视频| 久久成人在线视频| 亚洲白拍色综合图区| 美女少妇精品视频| 日韩视频免费大全中文字幕| 欧美激情手机在线视频| 97视频在线观看成人| 久久久久久国产三级电影| 亚洲欧洲xxxx| 欧美午夜精品久久久久久浪潮| 欧美第一黄网免费网站| 国产成人精品999| 69国产精品成人在线播放| 国产精品老牛影院在线观看| 欧美性生交xxxxxdddd| 中文字幕在线看视频国产欧美在线看完整| 久热爱精品视频线路一| 91麻豆国产语对白在线观看| 欧美精品久久久久| 两个人的视频www国产精品| 97精品国产97久久久久久| 日韩精品在线私人| 日本精品免费一区二区三区| 欧美xxxx14xxxxx性爽| 国产精品jizz在线观看麻豆| 亚洲跨种族黑人xxx| zzijzzij亚洲日本成熟少妇| 夜色77av精品影院| 国产成人av在线播放| 国产精品一区二区在线| 亚洲欧美国产日韩天堂区| 日韩激情视频在线播放| 精品国产一区二区三区四区在线观看| 青青草成人在线| 揄拍成人国产精品视频| 亚洲白拍色综合图区| 国产午夜精品美女视频明星a级| 成人黄色片网站| 97久久超碰福利国产精品…| 久久精品国产v日韩v亚洲| 国产一区二区日韩| 中文字幕精品一区久久久久| 亚洲国产成人久久综合| 亚洲人成欧美中文字幕| 中文字幕成人精品久久不卡| 亚洲影院高清在线| 欧美又大粗又爽又黄大片视频| 国产亚洲精品久久久久动| 国产一区二区激情| 国产精品激情av电影在线观看| 亚洲精品欧美极品| 亚洲第一国产精品| 97在线精品国自产拍中文| 精品五月天久久| 欧美国产日本在线| 成人激情黄色网| 欧美丝袜第一区| 国产精品一区=区|