魚塘釣魚 fishing)

2021-08-14 21:20:57 字數 1544 閱讀 7315

魚塘釣魚(fishing)

時間限制: 1000 ms 記憶體限制: 65536 kb

提交數: 71 通過數: 42

【題目描述】

有n個魚塘排成一排(n<100),每個魚塘中有一定數量的魚,例如:n=5時,如下表:

魚塘編號

每1分鐘能釣到的魚的數量(1..1000)

每1分鐘能釣魚數的減少量(1..100)

當前魚塘到下乙個相鄰魚塘需要的時間(單位:分鐘)

1 10

2 3

2 14

4 5

3 20

6 4

4 16

5 4

5 9

3魚塘編號12345每1分鐘能釣到的魚的數量(1..1000)101420169每1分鐘能釣魚數的減少量(1..100)24653當前魚塘到下乙個相鄰魚塘需要的時間(單位:分鐘)3544

即:在第1個魚塘中釣魚第1分鐘內可釣到10條魚,第2分鐘內只能釣到8條魚,……,第5分鐘以後再也釣不到魚了。從第1個魚塘到第2個魚塘需要3分鐘,從第2個魚塘到第3個魚塘需要5分鐘,……

給出乙個截止時間t(t<1000),設計乙個釣魚方案,從第1個魚塘出發,希望能釣到最多的魚。

假設能釣到魚的數量僅和已釣魚的次數有關,且每次釣魚的時間都是整數分鐘。

【輸入】

共5行,分別表示:

第1行為n;

第2行為第1分鐘各個魚塘能釣到的魚的數量,每個資料之間用一空格隔開;

第3行為每過1分鐘各個魚塘釣魚數的減少量,每個資料之間用一空格隔開;

第4行為當前魚塘到下乙個相鄰魚塘需要的時間;

第5行為截止時間t。

【輸出】

乙個整數(不超過

2 31

−1 231−1

),表示你的方案能釣到的最多的魚。

【輸入樣例】

5 10 14 20 16 9

2 4 6 5 3

3 5 4 4

14 【輸出樣例】

76

#include

using

namespace

std;

typedef

long

long

int ll;

const

int n=1000+10;

int a[n],b[n],c[n],ans;

priority_queueint,int> >q;//預設first優先順序高

int main()

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

for(int i=1;icin>>c[i];

}cin>>t;

int t1=0,tim,mx=-1;

for(int i=1;i<=n;i++)//列舉每個魚塘

while(tim>0&&q.top().first>0)

if(ans>mx)

mx=ans;

t1+=c[i];

}cout

0;}

魚塘釣魚(fishing)

給出乙個截止時間t t 1000 設計乙個釣魚方案,從第1個魚塘出發,希望能釣到最多的魚。假設能釣到魚的數量僅和已釣魚的次數有關,且每次釣魚的時間都是整數分鐘。輸入格式 輸入檔案共5行,分別表示 第1行為n 第2行為第1分鐘各個魚塘能釣到的魚的數量,每個資料之間用一空格隔開 第3行為每過1分鐘各個魚...

魚塘釣魚 fishing)

時間限制 1000 ms 記憶體限制 65536 kb 提交數 149 通過數 81 三種做法 純貪心做法 堆維護dp 有n個魚塘排成一排 n 100 每個魚塘中有一定數量的魚,例如 n 5時,如下表 魚塘編號每1分鐘能釣到的魚的數量 1.1000 每1分鐘能釣魚數的減少量 1.100 當前魚塘到下...

魚塘釣魚題解(堆解決)

這道題可以用 貪心 大根堆 來解決。先把題目放上來。描述 有n個魚塘排成一排 n 100 每個魚塘中有一定數量的魚,例如 n 5時,如下表 魚塘編號 123 45每1分鐘能釣到的魚的數量 1.1000 10 1420169 每1分鐘能釣魚數的減少量 1.100 246 5354 4即 在第1個魚塘中...