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 ...
随机推荐
- ASP 调用dll(VB)及封装dll实例
ASP调用dll及封装dll实例,封装为dll可以提供运行效率,加密代码. 打开VB6,新建ActiveX DLL 2.在工程引用中加入Microsoft Active Server Pages Ob ...
- Gprinter Android SDK V2.0 使用说明
佳博特约经销商,此店购买的打印机问题优先解决哟 https://shop107172033.taobao.com/index.htm?spm=2013.1.w5002-9520741823.2.V1p ...
- set,multiset容器类型
set和multiset会根据特定的排序准则,自动将元素排序.两者不同处在于multiset允许元素重复而set不允许. 一.集和多集(set 和multiset 容器类) 在使用set和multis ...
- 数组去重的三种方法及from方法
直接上代码: var str="adbbckddwerivka"; var arr=str.split(""); console.log(arr); //ind ...
- PHP图片操作
<?php $filename="http://pic.nipic.com/2007-12-06/2007126102233577_2.jpg";//图片地址//获取图片信息 ...
- ecshop数据库操作类
ECShop v2.7.2没有使用一些开源的数据库操作类,比如adodb或者PEAR,而是封装了自己的实现. 好处:实现非常轻量,只有一个文件,27Kb,大大减小了分发包的文件大小. 当网站需要做me ...
- Centos下安装配置LAMP(Linux+Apache+MySQL+PHP)
Centos下安装配置LAMP(Linux+Apache+MySQL+PHP) 关于LAMP的各种知识,还请大家自行百度谷歌,在这里就不详细的介绍了,今天主要是介绍一下在Centos下安装,搭建一 ...
- js以json形式提交数据,后台接受
$("#savename").click(function(){ var fananname=$("#editname").val(); var jsonLis ...
- Flask_SqlAlchemy 1215, 'Cannot add f oreign key constraint'
Flask_SqlAlchemy 1215, 'Cannot add f oreign key constraint'报错 sqlalchemy.exc.IntegrityError: (pymysq ...
- python模块之socket
43.python模块之socket: Python在网络通讯方面功能强大,学习一下Socket通讯的基本方式 UDP通讯: Server: import socket port=8081 ...