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
#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,vector<int>,greater<int> >q;
int ans = 0; int p;
for(int i=1,s=0;i<=n;i++)
{
for(;q.size()>=i;q.pop())
s-=q.top();
for(int j=0;j<v[i].size();j++)
{ p=v[i][j];
q.push(p);
s += p;
}
for(;q.size()>i+1;q.pop())
{
s -= q.top();
}
ans = max(ans,s);
}
printf("%d\n",ans);
}

最新文章

  1. [Windows] win7 配置Java开发环境
  2. CSS书写顺序
  3. Liferay 6.2 改造系列之十一:默认关闭CDN动态资源
  4. ajax:serialize() 获取表单集合
  5. c# 单例模式[Singleton]之深夜闲聊
  6. linux shell 不同进制数据转换(二进制,八进制,十六进制,base64) (转)
  7. (原创)Java多线程作业题报java.lang.IllegalMonitorStateException解决
  8. mysql别名的使用
  9. Vue 爬坑之路(三)—— 使用 vue-router 跳转页面
  10. 关于无法下载android开发工具的解决方法
  11. (六十六)TableView内容超过一屏时滚动到屏幕底部的方法
  12. Maven学习(五)使用Maven构建多模块项目
  13. thinkphp在app接口开发过程中的通讯安全认证
  14. 使用ptrace向已运行进程中注入.so并执行相关函数(转)
  15. 基于JSP的在线考试系统-JavaWeb项目-有源码
  16. [BZOJ3139][HNOI2013]比赛(搜索)
  17. Android高手进阶篇4-实现侧滑菜单框架,一分钟集成到项目中
  18. NOIP树上问题总结
  19. selenium+jenkins网页自动化测试的构建
  20. windows 64位 安装mvn提示 不是内部或外部命令

热门文章

  1. Centos7下永久修改mysql5.6最大连接数
  2. 第6章:使用Python监控Linux系统
  3. 【GCN】图卷积网络初探——基于图(Graph)的傅里叶变换和卷积
  4. ORACLE触发器的自治事务的注意事项
  5. ASP.NET Core中间件实现分布式 Session(转载)
  6. windows 安装K8s 简易教程
  7. 9. Java分支语句之if...else
  8. IOS 跳转页面
  9. Cron 表达式详解
  10. 本地存储和vuex使用对比