博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj1042
阅读量:6961 次
发布时间:2019-06-27

本文共 1601 字,大约阅读时间需要 5 分钟。

题意:有n个湖,每个湖有一个初始的每单位时间的上钩鱼数,在那里钓鱼时该上钩率会以di的速率不断下降,不钓的时候上钩率不变。这n个湖是排成一排的,从第一个湖开始每个单位时间可以选择钓鱼或者往下一个湖走,这些路是单向的不能往回走。给定总时间h,问最多能钓到多少鱼。

分析:我们依次枚举究竟要在前多少个湖钓鱼,那么我们可以先将路上的时间计算好,然后人为我们可以在这几个湖之间瞬间转移,每次挑一个上钩率最高的湖去钓即可。

View Code
#include 
#include
using namespace std;const int maxn=26,maxh=16;void init();void work();void print();void make(int a,int time);int N,n,h,f[maxn],d[maxn],t[maxn-1],ans[maxn],ansf;bool p=false;int main(){// freopen("t.txt","r",stdin); N = 1; while (N--) { while (cin>>n&&n!=0) { init(); work(); print(); } } return 0;}void init(){ int i; cin>>h; h=h*12; ansf=-1; for (i=1;i<=n;i++) cin>>f[i]; for (i=1;i<=n;i++) cin>>d[i]; for (i=1;i
>t[i];}void work(){ int i,time=0; t[0]=0; for (i=1;i<=n;i++) { time+=t[i-1]; make(i,h-time); }}void print(){ int i; if (p) cout<
0) { max1=-1; maxi=-1; for (i=1;i<=a;i++) if (ls[i]>max1) { max1=ls[i]; maxi=i; } ans1[maxi]+=1; fish+=max1; ls[maxi]=0>ls[maxi]-d[maxi]?0:ls[maxi]-d[maxi]; time--; } if (fish
ansf) { for (i=1;i<=n;i++) ans[i]=ans1[i]; ansf=fish; return; } j=1; while (j<=n&&ans1[j]==ans[j]) j++; if (ans1[j]>ans[j]) for (i=1;i<=n;i++) ans[i]=ans1[i];}

 

转载地址:http://jpgil.baihongyu.com/

你可能感兴趣的文章
Cisco路由配置入门
查看>>
图片数据&大文本数据存储
查看>>
我的友情链接
查看>>
创建并调用 DLL(1)
查看>>
lvs+keepalived实现DR模式热备
查看>>
各种媒体数据以 base64 编码方式直接嵌入网页中的写法
查看>>
微软ASP.NET 电商网站开发实战 MVC6 +HTML5 +WCF+WebAPI+NoSQL+mongoDB+Redis+Core视频 代码 面试题...
查看>>
由客户现场引发的思考
查看>>
ORACLE 查看数据库文件的位置
查看>>
Android应用及应用管理
查看>>
开发第一个Hibernate项目,实现插入数据功能
查看>>
Xcode8 missing file 报出 ”xx“is missing from working copy 的问题 解决方法汇总
查看>>
rhsl 6.5 搭建DNS服务器
查看>>
推荐最适合IT人自学的6个视频网站、8个社区网站,欢迎补充
查看>>
idea配置tomcat
查看>>
自定义Iptables日志输出
查看>>
Http Cite
查看>>
grep精确匹配(存在. -的情况)
查看>>
鼠标滑在标题上显示图片的JS代码
查看>>
View Horizon Mirage安装手册(一)——Horizon Mirage介绍
查看>>