poj1042
题目大意:去捕鱼
#include<stdio.h>
#include<queue>
using namespace std; #define maxn 30 struct node
{
int fi, di, index, p;
friend bool operator < (node n1, node n2)
{
if(n1.fi != n2.fi)
return n1.fi < n2.fi;
return n1.index > n2.index;
}
}; void Solve(int ans[], node a[], int n, int *Max, int Time); int main()
{
int n, t=0; while(scanf("%d", &n), n)
{
int i, H, Max=-1, ans[maxn]={0}, ti[maxn]={0}, time=0;
node a[maxn]; scanf("%d", &H); H = H*12; for(i=0; i<n; i++)
scanf("%d", &a[i].fi);
for(i=0; i<n; i++)
{
scanf("%d", &a[i].di);
a[i].index = i;
a[i].p = 0;
}
for(i=1; i<n; i++)
scanf("%d", &ti[i]); for(i=0; i<n; i++)
{
time += ti[i];
Solve(ans, a, i+1, &Max, H-time);
} if(t)printf("\n");t++; for(i=0; i<n; i++)
printf("%d%s", ans[i]*5, i==n-1?" \n":", ");
printf("Number of fish expected: %d\n", Max);
} return 0;
}
void Solve(int ans[], node a[], int n, int *Max, int Time)
{
int i, sum=0;
priority_queue<node> Q;
node s; for(i=0; i<n; i++)
{
s = a[i];
Q.push(s);
} if(Time < 0)return ; while(Time)
{
Time--; s = Q.top(), Q.pop();
sum += s.fi;
s.fi -= s.di, s.p++;
if(s.fi < 0)
s.fi = 0;
Q.push(s);
} if(*Max < sum)
{
while(Q.size())
{
s = Q.top(), Q.pop();
ans[s.index] = s.p;
}
*Max = sum;
}
}
poj1042的更多相关文章
- poj1042(贪心+枚举)
题目链接:https://vjudge.net/problem/POJ-1042 题意:给n个湖,给出每个湖第一次打捞时鱼的数量f[i],每单位时间鱼减少的数量d[i],从湖i到湖i+1用时t[i], ...
- POJ1042 Gone Fishing
采用贪心策略. 假设他从1湖泊走到x 湖泊,这还剩下 h*12 - sigma(T1--Tx-1).(单位时间为5分钟).然后再用剩下的时间去钓1-x的湖泊的鱼. 每次都选择最多鱼的湖泊钓. code ...
- poj1042题解
h [1,16] hours all_v=h*12 intervals n [2,25] lakes fi inital intervals fi-di*v v [0,all_v) 题意,做每件事情的 ...
- POJ1042 贪心钓鱼
题意: 你有H小时(H*12个单位)时间去用,有n个鱼池在一条直线上,一开始你在1的位置,可以选择在某些鱼池上钓鱼,但是如果持续在一个鱼池上钓鱼钓鱼速度回成线性减少,初始每个时间单位钓fi ...
- OJ题目分类
POJ题目分类 | POJ题目分类 | HDU题目分类 | ZOJ题目分类 | SOJ题目分类 | HOJ题目分类 | FOJ题目分类 | 模拟题: POJ1006 POJ1008 POJ1013 P ...
- 暑假集训Chapter1 贪心
为什么要今天写呢? 明天全力研究Johnson和一些奇奇怪怪的贪心 今天把能写的都写了 T1T2太水了直接上代码吧 #include<bits/stdc++.h> #define LL l ...
随机推荐
- 内存泄漏在 WPF 和 Silverlight 提防
瑞奇韭菜礼物 ︰ 内存泄漏在 WPF 和 Silverlight 提防 内存泄漏在 WPF 和 Silverlight 提防 WPF 和 Silverlight 允许您定义您的用户界面,用最少的代码将 ...
- 微信小程序开发之入门篇(熟悉开发工具)
个人的每一篇博文都谈不上有什么技术含量,只是为了帮助不熟悉微信小程序开发的自己及他人提供一下思路.谢谢,下面开始! PS: 因为本人没有小程序的内测资格,所以所有的开发及Demo都是无AppId的,如 ...
- 掌握JS
1.原生的js,好比全真教的武功,一步步从基础开始(先练气再御剑),很长一段时间内和jquery有很大差距,掌握以后发现jquery只不过是另外一种武功,看一遍既会.且当学原生到一定程度之后,可以自创 ...
- Windows 8 / 8.1 禁用驱动签名最详细图文教程
Windows 8 鼠标右上角/右下角弹出边栏,选择“设置” 点击“更改电脑设置”: 选择“常规”,右侧拖到底,点击“高级启动”-“立即重启”: 稍后进入恢复页面,选择“疑难解答” 进入疑难解答后,选 ...
- linux定时执行python脚本
每天清晨 4:00:01,用python执行/opt/aa.py文件. 编辑定时任务: #crontab -e 加入: 0 4 * * * python /opt/aa.py 保存,退出即可. 如果执 ...
- 【vc】1_Windows程序内部运行机制
创建一个Win32应用程序步骤: 1.编写WinMain函数; 2.创建窗口(步骤如下): a.设计(一个)窗口类(WNDCLASS) b.注册(该)窗口类. c.创建窗口. d.显示并更新窗口. 3 ...
- nginx 跨域。。。掉坑里了,小心
今天公司产品一个功能突然挂掉了...向客户演示之前出现了,手机端显示不能获取下载资源,可是急坏了一票人.. 通过手机端,调查服务器地址调用了http:/2342342.domain.hostname. ...
- Asp.net 实现图片缩放 无水印(方法二)
public static System.Drawing.Image GetImage(string path) { try { if (path.StartsWith("http" ...
- 滚动条响应鼠标滑轮事件实现上下滚动的js代码
<script type="text/javascript"> var scrollFunc=function(e){ e=e || window.event; if( ...
- php基础知识【函数】(4)时间date
一.time() -- 返回当前的 Unix 时间戳 $nextWeek = time() + (7 * 24 * 60 * 60); echo 'Next Week: '. date('Y-m-d' ...