国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

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

P1616 瘋狂的采藥

2019-11-14 10:29:08
字體:
來源:轉載
供稿:網友

題目背景

此題為NOip2005普及組第三題的瘋狂版。

此題為紀念LiYuxiang而生。 題目描述

LiYuxiang是個天資聰穎的孩子,他的夢想是成為世界上最偉大的醫師。為此,他想拜附近最有威望的醫師為師。醫師為了判斷他的資質,給他出了一個難題。醫師把他帶到一個到處都是草藥的山洞里對他說:“孩子,這個山洞里有一些不同種類的草藥,采每一種都需要一些時間,每一種也有它自身的價值。我會給你一段時間,在這段時間里,你可以采到一些草藥。如果你是一個聰明的孩子,你應該可以讓采到的草藥的總價值最大。”

如果你是LiYuxiang,你能完成這個任務嗎?

此題和原題的不同點:

1.每種采藥可以無限制地瘋狂采摘。

2.藥的種類眼花繚亂,采藥時間好長好長啊!師傅等得菊花都謝了! 輸入輸出格式 輸入格式:

輸入第一行有兩個整數T(1 <= T <= 100000)和M(1 <= M <= 10000),用一個空格隔開,T代表總共能夠用來采藥的時間,M代表山洞里的草藥的數目。接下來的M行每行包括兩個在1到10000之間(包括1和10000)的整數,分別表示采摘某種草藥的時間和這種草藥的價值。

輸出格式:

輸出一行,這一行只包含一個整數,表示在規定的時間內,可以采到的草藥的最大總價值。

輸入輸出樣例 輸入樣例#1:

70 3 71 100 69 1 1 2

輸出樣例#1:

140

說明

對于30%的數據,M <= 1000;

對于全部的數據,M <= 10000,且M*T<10000000(別數了,7個0)。

加油LiYuxiang,第一個AC留給你!

此題卡常,不要用Max,改用符號。 解釋什么是卡常數: for i:=1 to n do for j:=1 to n do begin a:=a*b*c*c*d*s*w*f*f*e*s; b:=b*w*v*d*x*c*b*g*j*k*s; end; 和 for i:=1 to n do for j:=1 to n do inc(x); 明顯前者快,但在時間復雜度中都是一樣O(n^2) 循環里面的東西快慢就是叫做常數 這是一門很深的學科 比如 a是布爾類型 那么 if a then … 和 if a=true then … 速度不一樣的,就判定而言,前者比后者快2倍。 (前者只判斷a等不等于true, 后者先判斷a等不等于true,然后再判定“a=true”這個表達式等不等于true) 還有,因為計算機的原理,加減(+-)比比較(<=>)快。 所以盡量減少比較。 大致理解就好,敲了我這么久字啊。。

#include<iostream>#include<cstdio>using namespace std;int T,M,t[10005],v[10005],f[100005];int main(){ scanf("%d%d",&T,&M); for(int i=1;i<=M;i++) scanf("%d%d",&t[i],&v[i]); for(int i=1;i<=M;i++) for(int j=t[i];j<=T;j++) { if(f[j]<f[j-t[i]]+v[i]) f[j]=f[j-t[i]]+v[i]; }
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 特克斯县| 沧源| 扶沟县| 长丰县| 抚顺县| 洪雅县| 安多县| 西充县| 凤凰县| 蒙自县| 锡林郭勒盟| 新余市| 翁牛特旗| 嘉义市| 白城市| 隆尧县| 东阿县| 巨野县| 南雄市| 城口县| 罗江县| 镇平县| 永嘉县| 离岛区| 永清县| 黑水县| 抚州市| 高邑县| 南漳县| 福建省| 五家渠市| 天台县| 嵊州市| 余江县| 贡觉县| 东丽区| 鸡东县| 垦利县| 开阳县| 长沙市| 平舆县|