釣魚(貪心 優先佇列 過載運算子)

2021-07-16 09:23:13 字數 1141 閱讀 1707

題目描述:

話說發源於小朋友精心設計的遊戲被電腦組的童鞋們藐殺之後非常不爽,為了表示安慰和鼓勵,vip999決定請他吃一次「年年大豐收」,為了表示誠意,他還決定親自去釣魚,但是,因為還要準備2013noip,z老師只給了他h(1<=h<=16)個小時的空餘時間,假設有n(2<=n<=25)個魚塘都在一條水平路邊,從左邊到右編號為1、2、3、。。。、n)。vip是個很講究效率的孩子,他希望用這些時間釣到盡量多的魚。他從湖1出發,向右走,有選擇的在一些湖邊停留一定的時間釣魚,最後在某乙個湖邊結束釣魚。他測出從第i個湖到i+1個湖需要走5*ti分鐘的路,還測出在第i個湖邊停留,第乙個5分鐘可以釣到魚fi,以後再每釣5分鐘魚,魚量減少di。為了簡化問題,他假定沒有其他人釣魚,也不會有其他因素影響他釣到期望數量的魚。請程式設計求出能釣最多魚的數量。

輸入輸出格式

輸入格式:

第一行:湖的數量n。

第二行:時間h(小時)。

第三行:n個數,f1,f2,…fn。

第四行:n個數,d1,d2,….dn。

第五行:n-1個數,t1,t2,….tn-1

輸出格式:

乙個數,所能釣魚的最大數量。

輸入輸出樣例

輸入樣例1:

2 1

10 1

2 5

2輸出樣例1:

31

#include

#include

using

namespace

std;

const

int maxn=30;

int n,h,ans,tot,t[maxn],d[maxn];

struct node

for(int i=1;i<=n;i++)

cin>>d[i];

for(int i=1;i<=n-1;i++)

cin>>t[i];

for(int i=1;i<=n;i++)

ans=max(ans,tot);

}cout

0;}

優先佇列的過載運算子

大家都知道 優先佇列是個好東西 但它怎麼如同sort一樣 自定義比較方式呢 這裡就獻上幾種 first 如果物件是int stl預設是大根堆 只需要priorityq priority,greater q 它就能搖身變為小根堆 so easy 過 secondly 重點是結構體的過載 隆重推出 op...

過載運算子

題目描述 定義乙個矩形類,資料成員包括左下角和右上角座標,定義的成員函式包括必要的建構函式 輸入座標的函式,實現矩形加法,以及計算並輸出矩形面積的函式。要求使用提示中給出的測試函式並不得改動。兩個矩形相加的規則是 決定矩形的對應座標分別相加,如 左下角 1,2 右上角 3,4 的矩形,與 左下角 2...

過載運算子

include include using namespace std class test test const int a v a test const test t1 v t1.v 以下過載小於號 比較兩個物件的大小 bool operator const test t1 const 比較物件...