鱼塘钓鱼 优先队列 多路归并排序 贪心

优先队列介绍

贪心思想:不会回头
解题思想:枚举0-N-1目的地鱼塘k,

如图 从上到下 选t(钓鱼的时间)个数,使和最大

#include<iostream>
#include<queue>
using namespace std;priority_queue<pair<int,int> >  q;
int maxx;
int N,T;int sum[105]; //sum[k]  表示到k鱼塘路程消耗的时间 struct YuT{   //读入鱼塘信息 int beg;  int dt;
}yy[105];int main()
{cin>>N;int a;for(int i=0;i<N;i++){scanf("%d",&yy[i].beg);} for(int i=0;i<N;i++){scanf("%d",&yy[i].dt);}for(int i=1;i<N;i++){scanf("%d",&a);sum[i]=sum[i-1]+a;}cin>>T;int t;              //钓鱼的时间 int ans;for(int k=0;k<N;k++)  //枚举目的地 {//      cout<<"k:"<<k<<endl;ans=0;while(!q.empty()){q.pop();}t=T-sum[k];if(t<=0)              continue;//     cout<<"t:"<<t<<endl;for(int i=0;i<=k;i++)             //把一路的头入队列 {q.push({yy[i].beg,i});           //需要记录鱼塘代号,以便入下个队列 }int near;while(!q.empty())                   //某一路可掉的鱼数归0了 {pair<int,int> s=q.top();          //每次钓1min鱼 q.pop();t--;                   ans+=s.first;                    //掉一分钟  钓鱼总数增加 //            cout<<s.first<<" "<<s.second<<endl; if(!t)                           //时间用完了,跳出循环 {break;}near=s.first-yy[s.second].dt;      //计算 下一个入队列的 if(near>0)q.push({near,s.second});}maxx=max(maxx,ans);                 }cout<<maxx;return 0;
}

鱼塘钓鱼 优先队列 多路归并排序 贪心相关推荐

  1. 1373:鱼塘钓鱼(fishing)——优先队列+贪心

    [题目描述] 有N个鱼塘排成一排(N<100),每个鱼塘中有一定数量的鱼,例如:N=5时,如下表: 即:在第1个鱼塘中钓鱼第1分钟内可钓到10条鱼,第2分钟内只能钓到8条鱼,--,第5分钟以后再 ...

  2. SSL 2331 洛谷 1717 信息学奥赛一本通 1373 鱼塘钓鱼#贪心#

    动态规划 温馨提示:交洛谷请在总时间*12并调整输入格式. 题目 设计一个钓鱼方案,从第1个鱼塘出发,希望能钓到最多的鱼. 分析 首先是贪心,最后在第i个鱼塘钓鱼的话,那么路上的时间是固定的,所以也可 ...

  3. 【一本通评测 1373】【堆】【贪心】鱼塘钓鱼

    鱼塘钓鱼 题目 解题思路 Code 一本通评测 1373:鱼塘钓鱼(fishing) 题目 [题目描述] 有N个鱼塘排成一排(N<100),每个鱼塘中有一定数量的鱼,例如:N=5时,如下表: 鱼 ...

  4. 信息学奥赛一本通 1373:鱼塘钓鱼(fishing)

    [题目链接] ybt 1373:鱼塘钓鱼(fishing) [题目考点] 1. 动态规划:区间动规 2. 贪心 优先队列 [解题思路] 解法1:区间动规 该人只会从编号小的鱼塘走到编号大的鱼塘,不存在 ...

  5. 鱼塘钓鱼(信息学奥赛一本通-T1373)

    [题目描述] 有N个鱼塘排成一排(N<100),每个鱼塘中有一定数量的鱼,例如:N=5时,如下表: 即:在第1个鱼塘中钓鱼第1分钟内可钓到10条鱼,第2分钟内只能钓到8条鱼,--,第5分钟以后再 ...

  6. 堆——鱼塘钓鱼:简直爽!

    我人生中的第一篇博客:想想还有点小激动呢! 鱼塘钓鱼(fishing) [问题描述]      有N个鱼塘排成一排(N<100),在第1个鱼塘中钓鱼第1分钟内可钓到10条鱼,第2分钟内只能钓到8 ...

  7. 多路归并排序_1600W整数排序多路归并

    Merge Sort 问题描述 Go 语言实现一个16M的整数(int64)多路归并的数组排序 思路 将待排序数组分成多个组,利用多个goroutine实现各个组的并行排序:然后通过Heap(最小堆) ...

  8. sphinx索引分析——文件格式和字典是double array trie 检索树,索引存储 – 多路归并排序,文档id压缩 – Variable Byte Coding...

    1 概述 这是基于开源的sphinx全文检索引擎的架构代码分析,本篇主要描述index索引服务的分析.当前分析的版本 sphinx-2.0.4 2 index 功能 3 文件表 4 索引文件结构 4. ...

  9. 【c++一本通】【堆】鱼塘钓鱼

    [c++一本通][堆]鱼塘钓鱼 题目 解题思路 枚举去到的最远的鱼塘 减去花费在路程上的时间,剩下的就是用来钓鱼的时间 将能到达的鱼塘初始的鱼,加入堆 然后取出堆顶,加入其下一次钓到的鱼的数量 直到时 ...

最新文章

  1. 空间刚架matlab_基本平面刚架MATLAB程序
  2. 定义python的色条_Python:定义颜色曲线部分
  3. Oracle 函数大全(字符串函数,数学函数,日期函数,逻辑运算函数,其他函数)...
  4. 计算机应用水平excel考什么,全国专业技术人员计算机应用能力考试EXCEL2003中文字处理全真模拟试卷(三)...
  5. 检测网络端口和刷新本地DNS
  6. 利用DDS IP实现线性调频信号(二)
  7. QQ输入法怎么设置快捷短语
  8. Linux stress命令详解
  9. ZA7783是一颗将单路MIPI DSI信号转换成单路LVDS/TTL信号的转接芯片
  10. RK3066的uboot源码分析
  11. 【设计】工业设计公司设计师的原则
  12. 基于LCC谐振补偿网络的无线充电技术的研究
  13. windows上软件上传至linux上,《如何将windows上的软件包或文件上传到linux服务上》...
  14. 深入浅出Linux操作系统权限管理与网络配置(三)
  15. turbo linux系统光盘,TurboLinux系统启动软盘的创建方法(转)
  16. java 队列已满_JAVA中常见的阻塞队列详解
  17. 2010年最有价值做的16个广告联盟
  18. 第五章 循环结构程序设计习题(2)
  19. JavaWeb学习笔记之——CSS
  20. CRect::SetRect说明

热门文章

  1. MBA明年学费酝酿大涨 涨价幅度可能高达50%
  2. (线段判交的一些注意。。。)nyoj 1016-德莱联盟
  3. persistence.cpp:2197:ann.xml(1): There should be space between attributes in function icvXMLParseTag
  4. 当计算机遇上经济学:如何量化你的投资并获得第一桶金
  5. Flowable 服务任务执行的三种方式
  6. c语言编程倒三角九九乘法表,【请用C语言变成】把九九乘法表分别显示成矩形,正三角,倒三角形状...
  7. rasp 系统_RASP相关的技术实现和产品介绍
  8. C语言实现组合式的计算
  9. 公司来了阿里人,然后......
  10. Android手机号码获取问题 用APN来获取手机号