ZOJ1161-Gone Fishing-greedy
2016-09-25 14:14
211 查看
题目大意:有一条单向的路,路上有n个鱼塘,可以钓鱼,每个鱼塘一开始可以钓到的鱼为fi,每次你在这个鱼塘钓完鱼的时候,这个鱼塘的fi就会减少di,问你要掉到最多的鱼的时候,在每个鱼塘所花的时间和最后钓到的鱼;
题目解析:我们可以枚举每一个鱼塘,表示结束时候的鱼塘,然后钓鱼的次数就是你的总时间减去到达这个鱼塘所花的时间,每次钓鱼的时候,我们只需要找到当前能钓到最多鱼的那个鱼塘就可以了,还要把当前钓过鱼的鱼塘的次数记录下来来维护plan;
AC代码:
题目解析:我们可以枚举每一个鱼塘,表示结束时候的鱼塘,然后钓鱼的次数就是你的总时间减去到达这个鱼塘所花的时间,每次钓鱼的时候,我们只需要找到当前能钓到最多鱼的那个鱼塘就可以了,还要把当前钓过鱼的鱼塘的次数记录下来来维护plan;
AC代码:
#include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<string> #include<vector> using namespace std; int fish[33],det[33],t[33],plan[33],best; void greedy(int pos,int time) { int i,id,ma,tempf[33],p[33],ta,j; for(i=1;i<=pos;i++) tempf[i]=fish[i]; memset(p,0,sizeof(p)); ta=0; for(i=1;i<=time;i++) { ma=0; id=-1; for(j=1;j<=pos;j++) if(tempf[j]>ma) { ma=tempf[j]; id=j; } if(id!=-1) { p[id]++; ta+=tempf[id]; tempf[id]-=det[id]; } if(id==-1) { p[1]+=1; } } if(ta>best) { best=ta; memset(plan,0,sizeof(plan)); for(i=1;i<=pos;i++) plan[i]=p[i]; } } int main() { int i,h,n,cas,sum[33],flag; scanf("%d",&cas); while(cas--) { flag=0; while(scanf("%d",&n)&&n) { scanf("%d",&h); h*=12; for(i=1;i<=n;i++) scanf("%d",&fish[i]); for(i=1;i<=n;i++) scanf("%d",&det[i]); sum[1]=0; for(i=2;i<=n;i++) { scanf("%d",&t[i]); sum[i]=sum[i-1]+t[i]; } best=-1; memset(plan,0,sizeof(plan)); for(i=1;i<=n&&h-sum[i]>0;i++) { greedy(i,h-sum[i]); } if(flag++) printf("\n"); for(i=1;i<=n-1;i++) printf("%d,",plan[i]*5); printf("%d\n",plan *5); printf("Number of fish expected: %d\n",best); } if(cas) printf("\n"); } return 0; }
相关文章推荐
- POJ-1042(ZOJ-1161) Gone Fishing
- ZOJ_3794_Greedy Driver(单源最短路)
- zoj 2510 Concentric Rings(Greedy~)
- 【动态规划】POJ 1161 & ZOJ1463 & XMU 1033 Brackets sequence
- ZOJ 3794 Greedy Driver spfa
- ZOJ 3794 Greedy Driver spfa
- ZJU1161 Gone Fishing - 动态规划
- ZOJ 3794 Greedy Driver spfa
- ZOJ 1161 && POJ 1042
- ZOJ 1638 Greedy Island
- 【动态规划】POJ 1161 & ZOJ1463 & XMU 1033 Brackets sequence
- POJ 1459 Power Network / HIT 1228 Power Network / UVAlive 2760 Power Network / ZOJ 1734 Power Network / FZU 1161 (网络流,最大流)
- ZOJ 3794 Greedy Driver
- zju 1161 Gone Fishing
- ZOJ2581
- ZOJ 3769 —— Diablo III(背包,DP)
- ZOJ 3420 Double Maze (BFS)
- ZOJ-1649
- zoj Information Sharing(并查集)
- zoj 3775