POJ 1042 Gone Fishing【枚举+贪心】
题意: 有 n 个池塘,只能从第一个池塘开始走,可以在每个池塘中钓鱼,而且知道了每个池塘每五分钟钓鱼的数量都会下降一定额数值,且从池塘到下一个池塘之间都有一定的距离,知道了每个池塘走到下一个池塘的时间和每个池塘一开始能够钓鱼的数量,求在规定的时间内所能钓的最多的鱼的数量。
分析: 枚举以每个池塘为终点的情况,找到最大值。
有个注意的地方就是,没枚举一个终点,先把这段路的每个间隔所花时间去掉,这样就可以每次贪心去找单位时间可以钓最多的鱼了,而且可以保证贪心到最后可以找到最优解。
#include<cstdio> #include<cstring> #define clr(x)memset(x,0,sizeof(x)) struct node {int f; // 开头 5 分钟钓的鱼数量 int d; // 每五分钟减少的数量int dis; // 到下一个池塘的时间 }l[202]; int a[202]; // 保存每个池塘一开始可以钓的鱼 int tim[202][2500]; int res[202]; int main() {int n,i,j,k,t,tot,tt,max;while(scanf("%d",&n),n){clr(a);clr(tim);clr(res);scanf("%d",&t);tot=t*12;for(i=0;i<n;i++)scanf("%d",&l[i].f);for(i=0;i<n;i++)scanf("%d",&l[i].d);for(i=0;i<n-1;i++)scanf("%d",&l[i].dis);for(i=0;i<n;i++){t=tot;for(j=0;j<i;j++)t-=l[j].dis;for(j=0;j<=i;j++)a[j]=l[j].f;for(j=0;j<t;j++){max=a[0];tt=0;for(k=0;k<=i;k++)if(a[k]>max){max=a[k];tt=k;}a[tt]-=l[tt].d;res[i]+=max;if(a[tt]<0)a[tt]=0;tim[i][tt]++;}}max=res[0];tt=0;for(i=1;i<n;i++)if(res[i]>max){max=res[i];tt=i;}for(i=0;i<n-1;i++)printf("%d, ",tim[tt][i]*5);printf("%d\n",tim[tt][i]*5);printf("Number of fish expected: %d\n\n",max);}return 0; }
转载于:https://www.cnblogs.com/dream-wind/archive/2012/07/27/2612598.html
POJ 1042 Gone Fishing【枚举+贪心】相关推荐
- 1042 Gone Fishing[DP/贪心]:钓鱼问题+易错数据集
题目大意 题目链接 去钓鱼,有n条湖按顺序排列,每条湖初始鱼量为fi,钓一个时间片就减少di条鱼,最小减到0条鱼,每条湖间的行走时间为ti个时间片(一个时间片为5分钟),给定时间h小时(一个小时12个 ...
- POJ - 1042 Gone Fishing 钓鱼 动态规划(DP)
[问题描述] 约翰是个垂钓谜,星期天他决定外出钓鱼h小时(1≤h≤16),约翰家附近共有n个池塘(2≤n≤25),这些池塘分布在一条直线上,约翰将这些池塘按离家的距离由近到远编上号,依次为L1,L2, ...
- 1737 - 满足三条件之一需改变的最少字符数 - 枚举 - 贪心
欢迎关注更多精彩 关注我,学习常用算法与数据结构,一题多解,降维打击. 文章目录 题目描述 题目剖析&信息挖掘 解题思路 方法一 枚举+贪心 分析 思路 注意 知识点 复杂度 代码实现 相关题 ...
- NYOJ 30 Gone Fishing(贪心)
Gone Fishing 时间限制:3000 ms | 内存限制:65535 KB 难度:5 描述 John is going on a fishing trip. He has h hours ...
- 二分枚举+贪心(nyist疯牛)
点我啊~带你去找它\(^o^)/~ 一开始一点思路都没有,压根不知道它要求的是什么,然后问了一下班长,才明白题目的意思就是,给你N个点,要你找出最优解的C点,言简意赅的即使说区间选点. 思路: 假设两 ...
- POJ 2054 Color a Tree (贪心)
$ POJ~2054~Color~a~Tree $ $ solution: $ 我们先从题中抽取信息,因为每个点的费用和染色的次数有关,所以我们可以很自然的想到先给权值大的节点染色.但是题目还说每个节 ...
- POJ 1753 位运算+枚举
题意: 给出4*4的棋盘,只有黑棋和白棋,问你最少几步可以使棋子的颜色一样. 游戏规则是:如果翻动一个棋子,则该棋子上下左右的棋子也会翻一面,棋子正反面颜色相反. 思路: 都是暴搜枚举. 第一种方法: ...
- 枚举+贪心--经常用到的思路--过程不好弄是--枚举结果C. Elections
http://codeforces.com/contest/1020/problem/C 题意:有n个人投票,m个政党,接下来n行,每i行两个数pi,ci,表示i这个人投票给pi,想让他投票给1号政党 ...
- The Lost House POJ - 2057(树形dp+贪心 (双线最优子结构问题))
思路 题意:有一只蜗牛爬上树睡着之后从树上掉下来,发现后面的"房子"却丢在了树上面, 现在这 只蜗牛要求寻找它的房子,它又得从树根开始爬起,现在要求一条路径使得其找到房子 所要爬行 ...
最新文章
- JavaScript HTML DOM - 改变 CSS
- 用化学的方法分类键盘和鼠标
- 总说数据分析,你知道产品设计中各环节怎么运用数据么
- jQuery 插件-(初体验一)
- 访问 GitHub 的速度很慢?试试这几种方法
- Linux Dynamic Shared Library LD Linker
- 仿Drinkspiration App的menu
- python在windows上安装_在Windows上安装Python | 严佳冬
- sphinx文档_使用Sphinx构建自定义文档工作流
- Linux Linux共享库
- python汇率转换
- 关闭Windows Defender工具
- 从云计算到容器到容器云
- 关于幼儿教师音乐素养对幼儿成长影响力的研究的论文怎么写呀
- 淘宝API:item_get_app - 获得淘宝app商品详情原数据
- 设计模式—— 四:接口隔离原则
- 关于我unity创建2d横版游戏的这件事1
- SaaS服务模式下的电商ERP遇到企业仓库分布于多组织下的管理
- Oracle应用之修改表字段类型
- 地理计算 | 计算两个坐标点射线的交点(前方交会)