gone fishing
2016-03-27 21:34
495 查看
题目:
枚举加贪心,枚举,从第一个到最后一个,将每一个作为最后结束钓鱼的池塘,这样就可以将从1走到最后结束的池塘的时间从总时间里减去,
剩下的时间就是钓鱼的时间,然后每次选出在i池塘可以钓到最大鱼数的池塘,一直循环,直到池塘没鱼(将剩下的时间全部给第一个池塘,也就是耗时间)
或者没时间,直接结束本次枚举。
其实这样处理就相当与在各个池塘之间瞬移,实际是做不到的,只是可以将问题抽象化成这样,这样,每次钓到的鱼都是最多的,最后回归到现实,将钓鱼的
次数从左到右分配给每个池塘,这样得出来的结果是最优化的。
转自别人代码:
枚举加贪心,枚举,从第一个到最后一个,将每一个作为最后结束钓鱼的池塘,这样就可以将从1走到最后结束的池塘的时间从总时间里减去,
剩下的时间就是钓鱼的时间,然后每次选出在i池塘可以钓到最大鱼数的池塘,一直循环,直到池塘没鱼(将剩下的时间全部给第一个池塘,也就是耗时间)
或者没时间,直接结束本次枚举。
其实这样处理就相当与在各个池塘之间瞬移,实际是做不到的,只是可以将问题抽象化成这样,这样,每次钓到的鱼都是最多的,最后回归到现实,将钓鱼的
次数从左到右分配给每个池塘,这样得出来的结果是最优化的。
转自别人代码:
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; const int N = 30; int f , d , ans , tmp , time ; int ff ; int main() { int n, h, i, j, t, cas = 0; while(~scanf("%d",&n) && n) { scanf("%d",&h); h *= 60; for(i = 0; i < n; i++) scanf("%d",&f[i]); for(i = 0; i < n; i++) scanf("%d",&d[i]); time[0] = 0; for(i = 1; i < n; i++) { scanf("%d",&t); time[i] = time[i-1] + t*5; } memset(ans, 0, sizeof(ans)); //注意初始化 int maxsum = -1; for(i = 0; i < n; i++) { int sum = 0, left_time = h - time[i]; for(j = 0; j <= i; j++) ff[j] = f[j]; //注意不要直接对f[i]进行操作,不然会影响下一次的结果 memset(tmp, 0, sizeof(tmp)); while(left_time > 0) { int mmax = 0, id = 0; for(j = 0; j <= i; j++) { if(ff[j] > mmax) { mmax = ff[j]; id = j; } } if(mmax == 0) break; sum += mmax; tmp[id] += 5; ff[id] -= d[id]; left_time -= 5; } if(left_time > 0) tmp[0] += left_time; if(sum > maxsum) { maxsum = sum; for(j = 0; j <= i; j++) ans[j] = tmp[j]; } } if(cas > 0) printf("\n"); printf("%d",ans[0]); for(i = 1; i < n; i++) printf(", %d",ans[i]); printf("\n"); printf("Number of fish expected: %d\n",maxsum); cas++; } return 0; }
相关文章推荐
- HDU--1533--Going Home--KM算法
- Go语言学习(九)文件操作
- 【Algorithm】选择排序法
- 初识google多语言通信框架gRPC系列(二)编译gRPC
- Google Test
- EM算法(Expectation Maximization Algorithm)
- Google Maps API3 之 Hello World
- 搭建golang环境
- LeetCode Algorithms #107 <Binary Tree Level Order Traversal II>
- LeetCode OJ 之Merge TwoSorted Lists 解题报告
- LeetCode OJ 之 GenerateParenthesis解题报告
- 教程: Windows 7、Vista 开启ipv6支持
- 英文歌曲:my heart will go on(我心永恒)
- 文本分类与聚类(text categorization and clustering)
- Golang给目录按时间排序.正则、时间条件搜索文件
- google hosts(2)
- google hosts(2)
- google hosts(2)
- 对于 AlphaGo 和 人类之间 PK 的一个设想实验
- Go语言学习(八)获取命令行参数