P1048 洛谷
辰辰是個天資聰穎的孩子,他的夢想是成為世界上最偉大的醫(yī)師。為此,他想拜附近最有威望的醫(yī)師為師。醫(yī)師為了判斷他的資質(zhì),給他出了一個難題。醫(yī)師把他帶到一個到處都是草藥的山洞里對他說:“孩子,這個山洞里有一些不同的草藥,采每一株都需要一些時(shí)間,每一株也有它自身的價(jià)值。我會給你一段時(shí)間,在這段時(shí)間里,你可以采到一些草藥。如果你是一個聰明的孩子,你應(yīng)該可以讓采到的草藥的總價(jià)值最大。”
如果你是辰辰,你能完成這個任務(wù)嗎?
輸入格式
第一行有 22 個整數(shù) TT(1 \le T \le 10001≤T≤1000)和 MM(1 \le M \le 1001≤M≤100),用一個空格隔開,TT 代表總共能夠用來采藥的時(shí)間,MM 代表山洞里的草藥的數(shù)目。
接下來的 MM 行每行包括兩個在 11 到 100100 之間(包括 11 和 100100)的整數(shù),分別表示采摘某株草藥的時(shí)間和這株草藥的價(jià)值。
輸出格式
輸出在規(guī)定的時(shí)間內(nèi)可以采到的草藥的最大總價(jià)值。
輸入輸出樣例
輸入 #1復(fù)制
70 3
71 100
69 1
1 2
輸出 #1復(fù)制
3
說明/提示
【數(shù)據(jù)范圍】
對于 30%30% 的數(shù)據(jù),M \le 10M≤10;
對于全部的數(shù)據(jù),M \le 100M≤100。
【題目來源】
NOIP 2005 普及組第三題
#include<iostream>using namespace std;int tval[1005]; int m,n; int ti[1005],val[1005];int main(){cin>>n>>m;for(int i=1;i<=m;i++) cin>>ti[i]>>val[i];for(int i=1;i<=m;i++){for(int j=n;j>=0;j--){if(j<ti[i]) break;tval[j]=max(tval[j],tval[j-ti[i]]+val[i]);}}cout<<tval[n];return 0; }總結(jié)
- 上一篇: 方正飞鸿ES2007SOA工作流开发平台
- 下一篇: 那些年你错过的SOA