(~ ̄▽ ̄)~*

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std; const int N=30;
int n,h,H;//H:记录原本有多少小时的时间;h:贪心的时候,防止H被修改
int res[N],RES[N];//res[]:贪心的时候保存结果;RES[]:用于记录最终结果
int maxn,sum;//maxn:保存最终结果,即捕到的鱼最大值;sum:每轮贪心的时候,用来保存鱼最大值 struct ff
{
int f,d,t;//f:第i个湖里原本有的鱼数,d:第i个湖被捕过之后的鱼数,t:从第i-1到第i个湖需要的时间
};
ff f[N],F[N]; int main()
{
while(scanf("%d",&n)&&n)
{
memset(RES,0,sizeof(RES));
maxn=0;
scanf("%d",&H);
H*=12; //以5min为单位,输出结果的时候,记得乘以5
RES[0]=H;//赋初值H,因为有可能1……n-1湖都没有鱼,时间就都花在第一个湖了
for(int i=0;i<n;i++)
scanf("%d",&F[i].f);
for(int i=0;i<n;i++)
scanf("%d",&F[i].d);
for(int i=1;i<n;i++)
scanf("%d",&F[i].t); for(int k=0;k<n;k++)
{//在第0到第k个湖之间捕鱼
h=H;
sum=0;
memset(res,0,sizeof(res));
for(int i=0;i<n;i++)
f[i].f=F[i].f;//避免F[]被修改
for(int i=1;i<=k;i++)
h-=F[i].t; //把到第k个湖之前所用的时间全部减去,剩下的时间来捕鱼
if(h<=0) break; while(h--)
{//只要有时间,每次都去鱼最多的湖抓鱼(贪心)
int index=0;
for(int i=1;i<=k;i++)
if(f[i].f>f[index].f)
index=i;
sum+=f[index].f;
f[index].f-=F[index].d;//第index个湖被捕之后,就会少掉d条鱼,要更新f[].f值
if(f[index].f<0)
f[index].f=0;//还要注意避免负值
res[index]++;//只要在第index个湖捕鱼,那么在第index个湖就花去了时间1(单位为/5min)
}
if(sum>maxn)
{//更新最大值maxn,找到最优的状态,把数据记录在RES[]中,因为res[]会清零并用于下一轮的记录
maxn=sum;
for(int i=0;i<=k;i++)
RES[i]=res[i];
}
}
for(int i=0;i<n-1;i++)
printf("%d, ",RES[i]*5);//记得*5
printf("%d\n",RES[n-1]*5);//记得*5
printf("Number of fish expected: %d\n\n",maxn);
}
return 0;
}

POJ 1042 Gone Fishing#贪心的更多相关文章

  1. POJ 1042 Gone Fishing (贪心)(刘汝佳黑书)

    Gone Fishing Time Limit: 2000MS   Memory Limit: 32768K Total Submissions: 30281   Accepted: 9124 Des ...

  2. poj -- 1042 Gone Fishing(枚举+贪心)

    题意: John现有h个小时的空闲时间,他打算去钓鱼.钓鱼的地方共有n个湖,所有的湖沿着一条单向路顺序排列(John每在一个湖钓完鱼后,他只能走到下一个湖继续钓),John必须从1号湖开始钓起,但是他 ...

  3. POJ #1042 Gone Fishing - WA by a DP solution. TODO

    I used DP instead of Greedy. But got WA on PoJ, though it passed all web-searched cases. Maybe I hav ...

  4. POJ 1042 Gone Fishing

    题意:一个人要在n个湖中钓鱼,湖之间的路径是单向的,只能走1->2->3->...->n这一条线路,告诉你每个湖中一开始能钓到鱼的初始值,和每钓5分钟就减少的数量,以及湖之间的 ...

  5. POJ 1042 Gone Fishing( DP )

    题意:小明打算做一个h((1 <= h <= 16))个小时钓鱼旅行.发现这里有n(2 <= n <= 25)个湖,而且所有的湖都在一条路的旁边.小明打算从第1个湖开始钓起,每 ...

  6. POJ 3190 Stall Reservations贪心

    POJ 3190 Stall Reservations贪心 Description Oh those picky N (1 <= N <= 50,000) cows! They are s ...

  7. POJ 2392 Space Elevator(贪心+多重背包)

    POJ 2392 Space Elevator(贪心+多重背包) http://poj.org/problem?id=2392 题意: 题意:给定n种积木.每种积木都有一个高度h[i],一个数量num ...

  8. Poj/OpenJudge 1042 Gone Fishing

    1.链接地址: http://bailian.openjudge.cn/practice/1042/ http://poj.org/problem?id=1042 2.题目: Gone Fishing ...

  9. Gone Fishing POJ 1042

    #include<cstdio> #include<iostream> #include<algorithm> #include<cstring> us ...

随机推荐

  1. LR日志解析

    在录制和回放的时候,VU会分别把发生的事件记录成日志文件,这些日志有利于我们跟踪VU和服务器的交互过程. 1.回放日志(Replay log) 脚本回放运行时的输出都记在这个log里. "输 ...

  2. Jmeter之录制脚本

    目前,思路:先录制→再压测. [一]录制的准备: 第一种:直接的模板(¬_¬) [1]File→Templates [2]看见Select Template→Recording→create [3]好 ...

  3. linux 学习-用户&群组&权限

    Linux用户&群组&权限  ⦁ Linux安全性模型   1)Linux使用User和Group控制使用者对文件的存取权限   2)用户使用账号和口令登录Linux   3) ...

  4. mysql添加为成绩表添加名次

    对于一种这样的表,为score添加名次

  5. 2017中国数据库技术大会(DTCC)又要来啦!期待~~

    2017第八届中国数据库技术大会(DTCC2017)将于2017年5月11-13日如约而至.2017中国数据库技术大会(DTCC)以"数据驱动•价值发现"为主题,汇集来自互联网.电 ...

  6. HTTPClient网络异常:java.lang.IllegalStateException: Content has been consumed

    在对代码进行重构时候,出现了一个异常,代码的网络请求使用的是HTTPClient: 但是其实代码中没有添加什么,只是添加了两句log: 后来发现是因为将EntityUtils.toString()方法 ...

  7. Qt 学习笔记

    继承自QObject 的Qt类都具有支持信号和槽的能力,并且在子类的实现代码中直接使用connect()函数 pwdLineEdit->setEchoMode(QLineEdit::Passwo ...

  8. 怎么 得到 DBGrid选中行的数据

    转自:https://zhidao.baidu.com/question/1694035814426308148.html 一般是你鼠标点到哪一行,其DataSet的指针就指到了什么位置你可以直接通过 ...

  9. Nginx redirect

    if ($host != 'www.xxxxx.com' ) { rewrite ^/(.*)$ http://www.xxxx.com/$1 permanent; }

  10. JQuery笔记(一)jq的使用方法

    我用的jq版本是支持pc版为主的最高1版本里最高的1.124版本 官网的链接是只有最新的3下载,我把我在官网下载的jq代码链接发出来,如下 点我获取jq代码 和js不同的是,jq开发者封装了一些方法 ...