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 ...
随机推荐
- VisualStudio2013内置SQLServer入门(二)--增删改查
前一篇 http://www.cnblogs.com/qixi233/p/4766451.html 这篇是sqlserver的操作 界面比较走心哈哈哈,将就着看,主要就是下面增删改查四个btn 对于s ...
- jQuery慢慢啃之事件(七)
1.ready(fn)//当DOM载入就绪可以查询及操纵时绑定一个要执行的函数. $(document).ready(function(){ // 在这里写你的代码...}); 使用 $(docume ...
- js浏览器键盘事件控制(转自新浪微博)
js键盘事件全面控制 主要分四个部分第一部分:浏览器的按键事件第二部分:兼容浏览器第三部分:代码实现和优化第四部分:总结 第一部分:浏览器的按键事件 用js实现键盘记录,要关注浏览器的三种按键事件类型 ...
- 反射给对象赋值遇到的问题——类型转换[转http://blog.csdn.net/xiaohan2826/article/details/8536074]
发布时间:2012-10-25 10:49浏览次数:225 给一个对象属性赋值可以通过PropertyInfo.SetValue()方式进行赋值,但要注意值的类型要与属性保持一致. 创建对象实例的 ...
- PHP框架_Smarty_实现登录功能
1.项目框架 |--mvc |--data 数据 |--cache 缓存 |--template_c 模板生成目录 |--framework |--function |--function.php 功 ...
- php之文件上传类代码
/* 单个文件上传 功能 上传文件 配置允许的后缀 配置允许的大小 获取文件后缀 判断文件的后缀 报错 */ class UpTool{ protected $allowExt = 'jpg,jpeg ...
- php多条件组合查询
1. 通过表单把查询条件提交到php文件中,在文件中以post的形式得到传送过来的条件. 2. 把传过来的查询条件赋给变量. 3. 判断如果查询条件非空,则拼接查询sql. 大体如下: 1. < ...
- jQuery网页加载进度条插件
jquery.pace.js会自动监测你的Ajax请求,事件循环滞后,记录您的页面上准备状态和元素来决定的进度情况. 将pace.js和主题css的添加到您的网页! pace.js会自动监测你的Aja ...
- YII Query Builder
今天遇到一个Query Builder 联合查询问题: 查询关联表某个字段的总数
- VS2010 release 和 debug 调试区别
VC下Debug和Release区别 最近写代码过程中,发现 Debug 下运行正常,Release 下就会出现问题,百思不得其解,而Release 下又无法进行调试,于是只能采用printf方式逐步 ...