題目描述:
為了挽救災區同胞的生命,心系災區同胞的你準備自己采購一些糧食支援災區,現在假設你一共有資金n元,而市場有m種大米,每種大米都是袋裝產品,其價格不等,并且只能整袋購買。請問:你用有限的資金最多能采購多少公斤糧食呢?
輸入:
輸入數據首先包含一個正整數C,表示有C組測試用例,每組測試用例的第一行是兩個整數n和m(1<=n<=100, 1<=m<=100),分別表示經費的金額和大米的種類,然后是m行數據,每行包含3個數p,h和c(1<=p<=20,1<=h<=200,1<=c<=20),分別表示每袋的價格、每袋的重量以及對應種類大米的袋數。
輸出:
對于每組測試數據,請輸出能夠購買大米的最多重量,你可以假設經費買不光所有的大米,并且經費你可以不用完。每個實例的輸出占一行。
樣例輸入:
1
8 2
2 100 4
4 100 2
樣例輸出:
400
#include
typedef struct rice{
int price;
int weight;
}Rice;
int max (int a, int b){
return (a > b) ? a : b;
}
int main (void){
int C, m, n;
Rice ric[2001];
int dp[101];
int i, j;
int price, weight, num, cnt, c;
scanf ("%d", &C);
while (C-- != 0){
scanf ("%d%d", &n, &m);
cnt = 0;
for (i=1; i<=m; ++i){
scanf ("%d%d%d", &price, &weight, &num);
c = 1;
while (num -c > 0){
num -= c;
ric[++cnt].price = price * c;
ric[cnt].weight = weight * c;
c *= 2;
}
ric[++cnt].price = price * num;
ric[cnt].weight = weight * num;
}
for (i=0; i<=n; ++i)
dp[i] = 0;
for (i=1; i<=cnt; ++i){
for (j=n; j>=ric[i].price; --j){
dp[j] = max (dp[j], dp[j-ric[i].price] + ric[i].weight);
}
}
printf ("%d\n", dp[n]);
}
return 0;
}
九度OJ 1501 最大連續子序列乘積 -- 動態規劃
題目地址:http://ac.jobdu.com/problem.php?pid=1501 題目描述: 給定一個浮點數序列(可能有正數.0和負數),求出一個最大的連續子序列乘積. 輸入: 輸入可能包含 ...
九度OJ 1480 最大上升子序列和 -- 動態規劃
題目地址:http://ac.jobdu.com/problem.php?pid=1480 題目描述: 一個數的序列bi,當b1 < b2 < ... < bS的時候,我們稱這個序列 ...
九度OJ 1533 最長上升子序列 -- 動態規劃
題目地址:http://ac.jobdu.com/problem.php?pid=1533 題目描述: 給定一個整型數組, 求這個數組的最長嚴格遞增子序列的長度. 譬如序列1 2 2 4 3 的最長嚴 ...
九度OJ 1451 不容易系列之一 -- 動態規劃
題目地址:http://ac.jobdu.com/problem.php?pid=1451 題目描述: 大家常常感慨,要做好一件事情真的不容易,確實,失敗比成功容易多了! 做好“一件”事情尚且不易,若 ...
九度oj 題目1087:約數的個數
題目鏈接:http://ac.jobdu.com/problem.php?pid=1087 題目描述: 輸入n個整數,依次輸出每個數的約數的個數 輸入: 輸入的第一行為N,即數組的個數(N<=1 ...
九度OJ 1502 最大值最小化(JAVA)
題目1502:最大值最小化(二分答案) 九度OJ Java import java.util.Scanner; public class Main { public static int max(in ...
九度OJ,題目1089:數字反轉
題目描述: 12翻一下是21,34翻一下是43,12+34是46,46翻一下是64,現在又任意兩個正整數,問他們兩個數反轉的和是否等于兩個數的和的反轉. 輸入: 第一行一個正整數表示測試數據的個數n. ...
九度OJ 1500 出操隊形 -- 動態規劃(最長上升子序列)
題目地址:http://ac.jobdu.com/problem.php?pid=1500 題目描述: 在讀高中的時候,每天早上學校都要組織全校的師生進行跑步來鍛煉身體,每當出操令吹響時,大家就開始往 ...
九度OJ 1531 貨幣面值(網易游戲2013年校園招聘筆試題) -- 動態規劃
題目地址:http://ac.jobdu.com/problem.php?pid=1531 題目描述: 小虎是游戲中的一個國王,在他管理的國家中發行了很多不同面額的紙幣,用這些紙幣進行任意的組合可以在 ...
隨機推薦
web端小知識點--持續更新
1.彈性滾動overflow:auto;?-webkit-overflow-scrolling: touch;?-mo-overflow-scrolling: touch;?overflow-scro ...
【BZOJ-3039&;1057】玉蟾宮&;棋盤制作 懸線法
3039: 玉蟾宮 Time Limit:?2 Sec??Memory Limit:?128 MBSubmit:?753??Solved:?444[Submit][Status][Discuss] D ...
java序列化
什么是java序列化,如何實現java序列化? 我們有時候將一個java對象變成字節流的形式傳出去或者從一個字節流中恢復成一個java對象,例如,要將java對象存儲到硬盤或者傳送給網絡上的其他計算機 ...
Hibernate緩存原理與策略
Hibernate緩存原理: 對于Hibernate這類ORM而言,緩存顯的尤為重要,它是持久層性能提升的關鍵.簡單來講Hibernate就是對JDBC進行封裝,以實現內部狀態的管理,OR關系的映射等 ...
使用MVVM框架時,如何處理在頁面動態渲染完之后需要發生的事件呢?
在項目實踐過程中,當我們使用如avalon這樣的MVVM框架時,通常會發現一直會有個問題. 過往的經驗告訴我們,想在頁面加載完之后處理些事件我們可以綁定document的ready方法或者使用jque ...
Spring中使用Hibernate
在context中定義DataSource,創建SessionFactoy,設置參數: DAO類繼承HibernateDaoSupport,實現具體接口,從中獲得HibernateTemplate進行 ...
保存網頁MHT
uses ADODB_TLB, CDO_TLB, ComObj,MSHTML;{$R *.dfm}{能把網頁如 WWW.QQ.COM保存為一個單文件 .MHT但不能把一個 A.HTM?保存為一個單文件 ...
leetcode算法題1: 兩個二進制數有多少位不相同?異或、位移、與運算的主場
/*?The Hamming distance between two integers is the number of positions at which the corresponding b ...
ATS日志說明
在ATS日志中我們經常遇到形形色色的緩存結果碼,為了更清晰地認識它們,相關資料整理到這里: TCP_HIT 請求對象的一份合法拷貝被緩存,ATS將發送該對象給client TCP_MISS 請求對象未 ...
Helloworld——SpringMVC
搭建環境:eclipse 這里需要配置Server runtime environment——Apache?Tomcat 到官網下載 解壓 在eclipse中: Window perferences ...