1475 建设国家
基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题

 收藏
 关注

小C现在想建设一个国家。这个国家中有一个首都,然后有若干个中间站,还有若干个城市。

现在小C想把国家建造成这样的形状:选若干(可以是0个)的中间站把他们连成一条直线,然后把首都连在这一条直线的左端。然后每个点可以连一个城市,特别的是最右端的点可以连接两个城市。

现在有n个城市的规划供小C选择。但是,他们那儿的交通条件比较差,他们那儿一天是2*H个小时,每个城市里面的人每天都会去首都拿一样东西,从他们所在的城市出发,到了首都之后拿了东西就走(拿东西的时间可以忽略不计),他们要在2*H个小时之内返回他们自己的家中(从家中出发到返回家中不超过2*H小时)。

每个城市有两个属性,一个是城市的直径,另外一个是能居住的人口数目。对于第i个城市而言,这两个属性分别是hi,pi。

城市的直径的意思是离这个城市出口最远的人想要出城先要在城里行走的最少的时间。

在首都,中间站,城市之间行走要花费1小时的时间。

小C想选择一些城市然后通过若干的中间站和首都连接起来,在每个人能在2*H小时返回的条件下所有城市居住的总人口数目要最多。

样例解释:最上面的蓝点表示首都,其它的蓝点表示中间站,剩下的红圈表示选择的城市。

Input
单组测试数据。
第一行包含两个整数n 和H (1 ≤ n ≤ 1000,1 ≤ H ≤ 1000000000),表示可供选择的城市数目和时间限制。
接下来n行,每行有两个整数hi, pi (1 ≤ hi ≤ H, 1 ≤ pi ≤ 1000),第i个城市的两个属性,即直径和能容纳人口数。
Output
输出最多能居住的人口数目。
Input示例
5 10
1 1
1 1
2 2
3 3
4 4
Output示例
11

我到现在还在想为什么这道题仅仅是20分的一道题,一开始做的时候题意都没能完全理解。。。理解了之后发现情况怎么这么多,要考虑的因素怎么这么多,用优先队列是肯定的,怎么用都是个问题。。。最后是一位大神把代码发过来,跑了几次之后,才理解。但现在,对这道题真的是快要膜拜了,无论是出题人还是写出这种做法的人,可能是我水平现在太弱了,这个代码仔细想了想,写得是真的6。膜拜~

将距离按照降序排列,然后在只有满足当前数量<i的时候往里面添加元素,弹出来的是当前队列中的人口最少的城市,队列中的是被选中的满足接下来长度要求的城市,然后在这一轮中添加这个距离的所有城市,之后如果城市数量超出,再将人口最少的城市排除。也就是说,队列里面是符合长度要求的人口最多且在当前状况下数量最多的城市。

膜拜大神~

代码:

#include <iostream>
#include <vector>
#include <queue>
#pragma warning(disable:4996)
using namespace std;const int N = 1005;
int n,H;
vector <int> v[N];int main()
{   scanf("%d%d",&n,&H);for(int h,p,i=0;i<n;i++){scanf("%d%d",&h,&p);int x = min(n,H-h);v[x].push_back(p);}priority_queue<int>q;int ans = 0;for(int i=1,s=0;i<=n;i++){for(;q.size()>=i;q.pop())s+=q.top();for(auto &p:v[i]){q.push(-p);s += p;}for(;q.size()>i+1;q.pop()){s += q.top();}ans = max(ans,s);}printf("%d\n",ans);
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://www.cnblogs.com/lightspeedsmallson/p/4899556.html

51nod 1475:建设国家 优先队列的好题相关推荐

  1. 工业互联网标识解析企业节点_丰尚公司获批建设国家工业互联网标识解析二级节点...

    11月12日,从江苏省工业和信息化厅获悉,丰尚公司获批建设国家工业互联网标识解析二级节点!本次获批的节点是:丰尚云行业工业互联网标识解析二级节点,主要应用于饲料.粮油.食品加工等领域.依托丰尚公司行业 ...

  2. 计算机一级题库ps视频,2016年国家计算机一级Photoshop题库及答案

    2016年国家计算机一级Photoshop题库及答案 2016年度第二次计算机等级考试正在备考,yjbys小编第一时间为大家分享计算机等级考试模拟试题及答案如下,一起来看看吧! 1.填充图层包括下列哪 ...

  3. ZDNS联合中兴为埃塞俄比亚建设国家顶级域名系统

    中新网1月30日电 近日,由互联网域名系统北京市工程研究中心有限公司(简称域名工程中心,英文缩写ZDNS)和中兴联合承接的埃塞俄比亚国家顶级域名建设完成,正式投入使用.这是我国企业第一次为其他国家独立 ...

  4. 2021年高考语文作文成绩查询,2021年国家高考语文作文题

    原标题:2021年国家高考语文作文题 时间总在不经意间流逝,6月份,各位高三学生就会迎来高考,身为他们的朋友或长辈,可以多多给他们加油打气.下面就是小编给大家带来的2021高考正能量语录文案90句,希 ...

  5. 国家电网职称英语计算机答案,国家电网职称英语题库短文判断

    <国家电网职称英语题库短文判断>由会员分享,可在线阅读,更多相关<国家电网职称英语题库短文判断(47页珍藏版)>请在人人文库网上搜索. 1.短文判断Passage 1 Feat ...

  6. 坚持建设国家自主信息体系,龙芯中科胡伟武“419”论坛畅谈LoongArch生态建设蓝图...

    4月19日,第五届关键信息基础设施自主安全创新论坛在北京召开,这也是龙芯中科正式发布自主指令系统LoongArch一周年之际. 在本次论坛上,龙芯中科董事长胡伟武发表了<龙架构(LoongArc ...

  7. 加快建设国家大数据综合试验区 推动供给侧结构性改革走出新路

    贵州以加快建设全国首个国家大数据综合试验区为主要抓手,推动供给侧结构性改革走出新路,促进了经济转型升级,使贵州经济保持了良好发展势头. 一.贵州建设国家大数据综合试验区的主要历程 (一)贵州建设国家大 ...

  8. 下载国家自然科学基金结题报告的免费工具

    科研界的同学和老师们经常需要通过国家自然科学基础研究知识库来查阅国家自然科学基金结题报告,然而该网站只提供在线观看功能,没有下载功能.为此, 根据网上的相关资料和代码,研发出一款免费下载工具. 使用方 ...

  9. 51Nod - 1475 优先队列 + 贪心

    题意: 小C现在想建设一个国家.这个国家中有一个首都,然后有若干个中间站,还有若干个城市. 现在小C想把国家建造成这样的形状:选若干(可以是0个)的中间站把他们连成一条直线,然后把首都(首都也是一个中 ...

最新文章

  1. 三代测序纠错软件汇总篇
  2. linux不能挂载手机,这个无法挂载的信息是怎么回事?
  3. uva 1416 (SPFA) **月赛第E题的原题**
  4. CodeForces 625A Guest From the Past
  5. git commit -m 与 git commit -am的区别
  6. (转) 使用vivado创建工程 1
  7. GraphQL在SAP Kyma中的广泛应用
  8. C#三层开发做学生管理系统
  9. aws v2.2.exe_如何在AWS Elastic Beanstalk上部署Rails 5.2 PostgreSQL应用
  10. Entity Framework 实体关系总结(转)
  11. 软件测试java三角形形状判定,软件测试技术基础实验——Junit 安装与 三角形问题的测试...
  12. 执行环境及作用域分析
  13. 3-25构造方法String类中的api
  14. android one开机动画,一加手机刷入开机动画教程(一加8系列设置更换开机动画教程)...
  15. MQTT服务器Mosquitto的使用及配置过程中的一些问题和解决方法
  16. 经典Java开发教程!腾讯+字节+阿里面经真题汇总,斩获offer
  17. 微信支付整理 (微信公众号支付)
  18. 华为CIO陶景文:华为数字化转型实践(附下载)
  19. 计算机高中期末总结作文,期末考试总结作文(精选5篇)
  20. 计算机理论知识论文,理论知识:计算机科学与技术硕士毕业论文写作方法

热门文章

  1. 推荐几个黑白照片上色软件给大家
  2. python google地图_请问该如何在python中使用google maps api?
  3. 从婚恋网站危机到6千亿元蛋糕
  4. python基金预测分析_基金定投选星期几更划算?[python统计分析]
  5. c语言 数据结构 课程设计 通讯录制作
  6. mysql 数据库怎么收缩_SQL Server -- 数据收缩详解
  7. “一个部族,一个民族,一个弗雷尔卓德。”
  8. 【一】基于Faker创建hive数据的相关测试
  9. PTA---C++实现,定义抽象类Person、派生类Student和类Teacher
  10. 数字逻辑 | 期末复习 · 基本知识