鱼塘钓鱼(树)
来源:互联网 发布:淘宝卖家怎么做活动 编辑:程序博客网 时间:2024/06/11 20:54
Description
有N个鱼塘排成一排(N<100),每个鱼塘中有一定数量的鱼,例如:N=5时,如下表:
鱼塘编号
1
2
3
4
5
第1分钟能钓到的鱼的数量(1..1000)
10
14
20
16
9
每过1分钟钓鱼数的减少量(1..100)
2
4
6
5
3
当前鱼塘到下一个相邻鱼塘需要的时间(单位:分钟)
3
5
4
4
即:在第1个鱼塘中钓鱼第1分钟可钓到10条鱼,第2分钟只能钓到8条鱼,……,第5分钟以后再也钓不到鱼了。从第1个鱼塘到第2个鱼塘需要3分钟,从第2个鱼塘到第3个鱼塘需要5分钟,……
给出一个截止时间T(T<1000),设计一个钓鱼方案,从第1个鱼塘出发,希望能钓到最多的鱼。
假设能钓到鱼的数量仅和已钓鱼的次数有关,且每次钓鱼的时间都是整数分钟。
Input
输入文件fishing.in共5行,分别表示:
第1行为N;
第2行为第1分钟各个鱼塘能钓到的鱼的数量,每个数据之间用空格隔开;
第3行为每过1分钟各个鱼塘钓鱼数的减少量,每个数据之间用空格隔开;
第4行为当前鱼塘到下一个相邻鱼塘需要的时间;
第5行为截止时间T;
Output
输出文件fishing.out仅一个整数(不超过maxlongint),表示你的方案能钓到的最多的鱼。
Sample Input
5
10 14 20 16 9
2 4 6 5 3
3 5 4 4
14
Sample Output
76
解题思路:用堆和贪心的方法,先把各项数据读入并存储在数组里面,然后开始枚举最远走到的池塘编号,收集能够钓鱼的池塘的资料,接着把堆初始化,并用贪心选取鱼最多的池塘,最后输出最优解即可。
程序:
type
data=record
fish,lake:longint;
end;
var
heap:array[1..100]of data;
t,f,d:array[1..100]of longint;
ans,i,j,k,m,max,n,t1,time:longint;
procedure sift(i:longint);
var
a:data;
j:longint;
begin
a:=heap[i];
j:=i*2;
while j<=k do
begin
if (j
if a.fish
else break;
end;
heap[i]:=a;
end;
begin
readln(n);
for i:=1 to n do
read(f[i]);
readln;
for i:=1 to n do
read(d[i]);
readln;
for i:=1 to n-1 do
read(t[i]);
t[n]:=0;
readln;
readln(m);
t1:=0;
max:=0;
for k:=1 to n do
begin
time:=m-t1;
ans:=0;
for i:=1 to k do
begin
heap[i].fish:=f[i];
heap[i].lake:=i;
end;
for i:=1 to k div 2 do
sift(i);
while (time>0) and (heap[1].fish>0) do
begin
inc(ans,heap[1].fish);
dec(heap[1].fish,d[heap[1].lake]);
sift(1);
dec(time);
end;
if ans>max then max:=ans;
inc(t1,t[k]);
end;
writeln(max);
end.
版权属于:Chris
原文地址:http://blog.sina.com.cn/s/blog_83ac6af80102v0pq.html
转载时必须以链接形式注明原始出处及本声明。
0 0
- 鱼塘钓鱼(树)
- 鱼塘钓鱼(fishing)
- 鱼塘钓鱼(fishing)
- 鱼塘钓鱼
- 鱼塘钓鱼
- 堆——鱼塘钓鱼:简直爽!
- 堆——鱼塘钓鱼:为什么不找点告诉我!
- 老板挖个鱼塘,让用户免费钓鱼,结果所有人都惊呆了……
- 网络钓鱼大讲堂 Part5 | 网络钓鱼对策(反钓鱼)
- 钓鱼入门(原作)
- 钓鱼
- 钓鱼
- 钓鱼
- 钓鱼
- 钓鱼
- 钓鱼
- 钓鱼
- 钓鱼
- 二叉树的前序遍历(树)
- ubuntu中latex解决“fontspec error: "font-not-found"”
- 二叉树的中序遍历(树)
- 二叉树的后序遍历(树)
- vlc for android中的数据绑定(Data Binding)
- 鱼塘钓鱼(树)
- 最小函数值(树)
- 寻找欧拉路(图论算法)
- 有关图的存储结构的程序1(图论算…
- 有关图的存储结构的程序2(图论算…
- 有关图的存储结构的程序3(图论算…
- 有关图的存储结构的程序4(图论算…
- 相位是频率的积分
- 最详细的 Android NavigationDrawer 开发实践总结