syhd142 |
|
|||
日歷
統計
導航常用鏈接留言簿(2)隨筆檔案(23)文章分類(270)
文章檔案(122)我的豆瓣搜索最新評論
閱讀排行榜
評論排行榜 |
自己怎么就那么的2呢?題目都讀錯了。。 簡單背包,每個人都可以從這些類型的物品里取一個,求這些人能夠取出的最大值。 當初看成每種類型的物品只有一個,這些人一共能取出的最大值。杯具~ #include <stdio.h>
#include <string.h> #define N 1005 #define W 35 int p[N], w[N], c[W]; int main() { int t, n, g, gw, sum; scanf("%d", &t); while(t--) { scanf("%d", &n); for(int i = 1; i <= n; i++) scanf("%d %d", &p[i], &w[i]); scanf("%d", &g); memset(c, 0, sizeof(c)); for(int i = n; i; i--) for(int j = 30; j >= w[i]; j--) { if(c[j] < c[j - w[i]] + p[i]) { c[j] = c[j - w[i]] + p[i]; } } sum = 0; for(int k = 1; k <= g; k++) { scanf("%d", &gw); sum += c[gw]; } printf("%d\n", sum); } return 0; }
評論:
|
![]() |
|
Copyright © Fucker | Powered by: 博客園 模板提供:滬江博客 |