51nod1475(贪心&枚举)
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1475
题意:中文题诶~
思路:看懂题意后,首先想到的是贪心:
按照人数非递增排序,对于当前城市尽量将其排在离首都远的地方,这样得到的人数显然是最大的;
对于最右边可以放两个城市,我一开始是将其余城市都安排好,再从剩下的城市中选择一个人数尽量多的。然而wa了;
举一个反例:
5 5
4 1
3 2
2 3
1 4
1 4
按照这个思路得到的答案是13,但显然正确答案是14;
显然右边多出的一个城市不能最后再选,因为本来多出的那个城市可能会在前面贪心时就被选走了;
解决的方法很简单,既然放后面不行,那先确定多出的那个城市就好了,所以可以先枚举多出那个城市,再按照前面的思路贪心剩下的城市就好了。。。
代码:
#include <iostream>
#include <algorithm>
#include <map>
#include <string.h>
using namespace std; const int MAXN=1e5+;
map<int, bool> vis;
struct node{
int hi, pi;
}gg[MAXN]; bool cmp(node a, node b){
return a.pi==b.pi?a.hi<b.hi:a.pi>b.pi;
} int main(void){
int n, k, num=;
cin >> n >> k;
for(int i=; i<n; i++){
cin >> gg[i].hi >> gg[i].pi;
}
sort(gg, gg+n, cmp);
for(int j=; j<n; j++){
if(gg[j].hi>=k) continue;
vis.clear();
int ans=gg[j].pi, cnt=;
for(int i=; i<n; i++){
if(i==j||gg[i].hi<gg[j].hi||cnt>=k-gg[j].hi) continue;
int x=k-gg[i].hi;
while(vis[x]&&x>=){
x--;
}
if(x>){
vis[x]=true;
ans+=gg[i].pi;
cnt++;
}
}
num=max(num, ans);
}
cout << num << endl;
return ;
}
51nod1475(贪心&枚举)的更多相关文章
- POJ 1018 Communication System 贪心+枚举
看题传送门:http://poj.org/problem?id=1018 题目大意: 某公司要建立一套通信系统,该通信系统需要n种设备,而每种设备分别可以有m个厂家提供生产,而每个厂家生产的同种设备都 ...
- 【搜索】POJ-2718 贪心+枚举
一.题目 Description Given a number of distinct decimal digits, you can form one integer by choosing a n ...
- [APIO2015]巴厘岛的雕塑 --- 贪心 + 枚举
[APIO2015]巴厘岛的雕塑 题目描述 印尼巴厘岛的公路上有许多的雕塑,我们来关注它的一条主干道. 在这条主干道上一共有\(N\)座雕塑,为方便起见,我们把这些雕塑从 1 到\(N\)连续地进行 ...
- hdu 4091 Zombie’s Treasure Chest 贪心+枚举
转自:http://blog.csdn.net/a601025382s/article/details/12308193 题意: 输入背包体积n,绿宝石体积s1,价值v1,蓝宝石体积s2,价值v2,宝 ...
- HDU 5303 Delicious Apples (贪心 枚举 好题)
Delicious Apples Time Limit: 5000/3000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Other ...
- 贪心+枚举/哈希表 HDOJ Trouble
题目传送门 题意:5个集合,每个集合最多200个数字,问是否每个集合挑一个数加起来和为0. 分析:显然n^5的程序果断超时,甚至n^3logn的二分也过不了.想n^3的方法,既然判断有没有,那么可以将 ...
- Delicious Apples (hdu 5303 贪心+枚举)
Delicious Apples Time Limit: 5000/3000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Other ...
- HDU 5303 Delicious Apples (2015多校第二场 贪心 + 枚举)
Delicious Apples Time Limit: 5000/3000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Other ...
- Codeforces C. Elections(贪心枚举三分)
题目描述: C. Elections time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
随机推荐
- 深入理解Java:注解(Annotation)自己定义注解入门
深入理解Java:注解(Annotation)自己定义注解入门 要深入学习注解.我们就必须能定义自己的注解,并使用注解,在定义自己的注解之前.我们就必须要了解Java为我们提供的元注解和相关定义注解的 ...
- # Playables API(翻译)
The Playables API provides a way to create tools, effects or other gameplay mechanisms by organi ...
- 九度OJ 1095:2的幂次方 (递归)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:913 解决:626 题目描述: Every positive number can be presented by the exponent ...
- Performance Tuning Using Linux Process Management Commands
[root@bigdata-server-02 /]# ps --help all Usage: ps [options] Basic options: -A, -e all processes -a ...
- xmanager 5图文使用教程
1.Xconfig xconfig是linux下X Window环境中用于配制的一个工具,和menuconfig相似,但用法更友好方便. 当你创建一个会话,会话分配一个默认的配置文件.Xmanager ...
- request,session,application三者关系<转>
几乎所有的Web开发语言都支持Session功能,Servlet也不例外. Servlet/JSP中的Session功能是通过作用域(scope)这个概念来实现的. 对象作用域为: page 在当 ...
- 设置port转发来訪问Virtualbox里linux中的站点
上一篇中我们讲到怎么设置virtuabox来通过SSH登录机器. 相同.我们也能够依照上一篇内容中的介绍,设置port转发,来訪问虚拟linux系统已经搭建的站点: 1.设置port转发: water ...
- ORACLE 表空间扩展
最近公司在对即将上线的系统做数据迁移和压力测试,于是乎需要和 Oracle 经常的打交道.今天正好碰到了表空间的问题,记录下来以后备用.也是最近才学习到的,原来 Oracle 表空间也是有大小限制的, ...
- ubuntu安装ros indigo
版本是14.04.1 一.先配置 1.点击新立得软件包管理器,输入密码exbot123, 2,点击最上面一栏的设置,选择软件源,前四个打勾,后一个不打,把sevice america改成mainsev ...
- python 实用pickle序列化
存储数据结构到一个文件中称为序列化.相json这样的格式需要定制的序列化数据的转换器.python提供了pickle模块以特殊的二进制格式保存和恢复数据对象. 还记得json解析datetime对象时 ...