题目链接: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(贪心&枚举)的更多相关文章

  1. POJ 1018 Communication System 贪心+枚举

    看题传送门:http://poj.org/problem?id=1018 题目大意: 某公司要建立一套通信系统,该通信系统需要n种设备,而每种设备分别可以有m个厂家提供生产,而每个厂家生产的同种设备都 ...

  2. 【搜索】POJ-2718 贪心+枚举

    一.题目 Description Given a number of distinct decimal digits, you can form one integer by choosing a n ...

  3. [APIO2015]巴厘岛的雕塑 --- 贪心 + 枚举

    [APIO2015]巴厘岛的雕塑  题目描述 印尼巴厘岛的公路上有许多的雕塑,我们来关注它的一条主干道. 在这条主干道上一共有\(N\)座雕塑,为方便起见,我们把这些雕塑从 1 到\(N\)连续地进行 ...

  4. hdu 4091 Zombie’s Treasure Chest 贪心+枚举

    转自:http://blog.csdn.net/a601025382s/article/details/12308193 题意: 输入背包体积n,绿宝石体积s1,价值v1,蓝宝石体积s2,价值v2,宝 ...

  5. HDU 5303 Delicious Apples (贪心 枚举 好题)

    Delicious Apples Time Limit: 5000/3000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java/Other ...

  6. 贪心+枚举/哈希表 HDOJ Trouble

    题目传送门 题意:5个集合,每个集合最多200个数字,问是否每个集合挑一个数加起来和为0. 分析:显然n^5的程序果断超时,甚至n^3logn的二分也过不了.想n^3的方法,既然判断有没有,那么可以将 ...

  7. Delicious Apples (hdu 5303 贪心+枚举)

    Delicious Apples Time Limit: 5000/3000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java/Other ...

  8. HDU 5303 Delicious Apples (2015多校第二场 贪心 + 枚举)

    Delicious Apples Time Limit: 5000/3000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java/Other ...

  9. Codeforces C. Elections(贪心枚举三分)

    题目描述: C. Elections time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

随机推荐

  1. Tabs in Non-RootViewController Scenarios

    新建空工程如图 添加一个MainStoryboard如图 设置启动项为MainStoryboard 重写AppDelegate的Window方法 public override UIWindow Wi ...

  2. 脱了裤子放屁之std::string

    一个天天跟c#奋斗的苦逼c++程序猿 改自己曾经代码的时候发现有例如以下几行. char szPath[MAX_PATH] = {0}; GetModuleFileNameA(NULL,szPath, ...

  3. EasyPusher手机直播推送是如何实现后台直播推送的

    本文由EasyDarwin开源团队成员John提供:http://blog.csdn.net/jyt0551/article/details/52276062 EasyPusher Android是使 ...

  4. 那些让你代码思维和能力有较大的提升Java源码(转)

    对于学习J2EE的框架有很大的帮助,代码里使用了各种设计模式.事件机制.Java8语法.代码量也很小,web服务使用Netty作为支持,对HTTP/网络想研究的一定是你的必读品.目前在写 Blade- ...

  5. IDEA eclipse 控制台日志输出到文件

    eclipse IDEA

  6. Python序列——序列操作

    Python中的序列包括,字符串.列表.元组.本文介绍序列的通用操作. 1. 切片中的None >>> s = 'abcdefg' >>> for i in ran ...

  7. mysql初始化命令及其他命令

    这个问题纠结了我两年: 为了配置my.cnf中 undo的 参数生效,以及生成undo文件,使用一下命令 /usr/bin/mysql_install_db   --defaults-file=/et ...

  8. java编程思想-基础

    interface: 方法默认为public:成员变量默认 static and final 对象数组的定义:理解? 多接口继承:可以多个接口,但只有一个具体类,具体类在前面 自:多接口继承时,来自不 ...

  9. CyclicBarrier及CountDownLatch的使用

    CountDownLatch位于java.util.concurrent包下,是JDK1.5的并发包下的新特性. 首先根据Oracle的官方文档看看CountDownLatch的定义: A synch ...

  10. 通过 :hover 伪元素控制其他元素

    ---代码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <tit ...