传送门


考虑一个贪心:对于所有人群按照收益从大到小排序,对于每一个人群找到当前能够选择的代价最小的房间成为一组可行订单(如果没有就不可行),最后将这些订单按照收益排序,选其中正的前\(o\)大即可。找代价最小的房间可以使用并查集,因为有偏序关系所以可以直接二分。

考虑其正确性:对于两个人群\(i,j(v_i > v_j)\),在我们的算法中会先给\(i\)分配房间,再给\(j\)分配房间。如果\(i\)分配的房间会影响\(j\)分配房间的选择,那么反过来先选\(j\)再选\(i\)也会导致\(i\)受到同样的影响。所以顺序不会影响最终匹配的个数。

而如果最终方案中\(i\)和\(j\)只能选择一个,那么一定会选择\(i\)和\(ij\)都能选的房间中代价较低的更优,这在算法中已经体现了;而如果同时选择了\(i,j\),那么\(i\)和\(j\)的房间互换不会影响答案,所以如何分配都可以。

#include<bits/stdc++.h>
using namespace std; #define int long long
inline int read(){
int a = 0;
char c = getchar();
bool f = 0;
while(!isdigit(c)){
if(c == '-') f = 1;
c = getchar();
}
while(isdigit(c)){
a = a * 10 + c - 48;
c = getchar();
}
return f ? -a : a;
} const int MAXN = 5e5 + 3;
#define PII pair < int , int >
vector < int > price;
vector < PII > room , peo;
int N , M , K , fa[MAXN]; int find(int x){
return fa[x] == x ? x : (fa[x] = find(fa[x]));
} bool cmp(PII a , PII b){return a.first > b.first;}
bool cmp1(int a , int b){return a > b;} signed main(){
#ifndef ONLINE_JUDGE
freopen("B.in","r",stdin);
freopen("B.out","w",stdout);
#endif
N = read(); M = read(); K = read();
for(int i = 0 ; i < N ; ++i){
int a = read() , b = read();
room.push_back(PII(b , a));
fa[i] = i;
}
fa[N] = N;
sort(room.begin() , room.end());
for(int i = 1 ; i <= M ; ++i){
int a = read() , b = read();
peo.push_back(PII(a , b));
}
sort(peo.begin() , peo.end() , cmp);
for(auto t : peo){
int pos = find(lower_bound(room.begin() , room.end() , PII(t.second , 0)) - room.begin());
if(pos != N){
fa[pos] = pos + 1;
price.push_back(t.first - room[pos].second);
}
}
sort(price.begin() , price.end() , cmp1);
long long sum = 0;
for(int i = 0 ; i < K && i < price.size() ; ++i)
if(price[i] > 0)
sum += price[i];
cout << sum;
return 0;
}

LOJ2514 CEOI2011 Hotel 贪心的更多相关文章

  1. 洛谷P4698 [CEOI2011]Hotel [贪心,二分,并查集]

    题目传送门 Hotel 题目描述 你经营着一家旅馆,这家旅馆有 n 个房间,每个房间有维护费用和容量.其中第 i 个房间的维护费用为 ci​,容量为 pi​ 人. 现在有 m 个订单,每个订单有两个参 ...

  2. 退役前的最后的做题记录upd:2019.04.04

    考试考到自闭,每天被吊打. 还有几天可能就要AFO了呢... Luogu3602:Koishi Loves Segments 从左向右,每次删除右端点最大的即可. [HEOI2014]南园满地堆轻絮 ...

  3. bzoj AC倒序

    Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...

  4. German Collegiate Programming Contest 2013-B:Booking(贪心)

        Booking Pierre is in great trouble today! He is responsible for managing the bookings for the AC ...

  5. [bzoj1135][Ceoi2011]Match_线段树

    [Ceoi2011]Match 题目大意:初始时滑冰俱乐部有1到n号的溜冰鞋各k双.已知x号脚的人可以穿x到x+d的溜冰鞋. 有m次操作,每次包含两个数ri,xi代表来了xi个ri号脚的人.xi为负, ...

  6. BZOJ 1692: [Usaco2007 Dec]队列变换 [后缀数组 贪心]

    1692: [Usaco2007 Dec]队列变换 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1383  Solved: 582[Submit][St ...

  7. HDOJ 1051. Wooden Sticks 贪心 结构体排序

    Wooden Sticks Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) To ...

  8. HDOJ 1009. Fat Mouse' Trade 贪心 结构体排序

    FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  9. BZOJ 1691: [Usaco2007 Dec]挑剔的美食家 [treap 贪心]

    1691: [Usaco2007 Dec]挑剔的美食家 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 786  Solved: 391[Submit][S ...

随机推荐

  1. REST API设计指导——译自Microsoft REST API Guidelines(二)

    由于文章内容较长,只能拆开发布.翻译的不对之处,请多多指教. 另外:最近团队在做一些技术何架构的研究,视频教程只能争取周末多录制一点,同时预计在下周我们会展开一次直播活动,内容围绕容器技术这块. 所有 ...

  2. 痞子衡嵌入式:飞思卡尔i.MX RT系列MCU启动那些事(6)- Bootable image格式与加载(elftosb/.bd)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔i.MX RT系列MCU的Bootable image格式与加载过程. 在i.MXRT启动系列第三篇文章 Serial Down ...

  3. 【转】ASP.NET MVC实现权限控制

    这篇分享一下 ASP.NET MVC权限控制.也就是说某一用户登录之后,某一个用户是否有权限访问Controller,Action(操作),视图等 想实现这些功能,需要在数据库创建好几个表:[User ...

  4. 第一册:lesson 107.

    第一册: It's too small. Do you like this dress,madam? I like the colour very much.It's a lovely dress,b ...

  5. [PHP]MySQL的wait_timeout与pdo对象

    1.查看和设置mysql的wait_timeout的值 SHOW GLOBAL VARIABLES LIKE '%timeout%'; 设置wait_timeout的值 SET GLOBAL wait ...

  6. SpringBoot究竟是如何跑起来的?

    摘要: 神奇的SpringBoot. 原文:SpringBoot 究竟是如何跑起来的? 作者:老钱 Fundebug经授权转载,版权归原作者所有. 不得不说 SpringBoot 太复杂了,我本来只想 ...

  7. react 函数子组件(Function ad Child Component)

    今天学习了react中的函数子组件的概念,然后在工作中得到了实际应用,很开心,那么好记性不如烂笔头,开始喽~ 函数子组件(FaCC )与高阶组件做的事情很相似, 都是对原来的组件进行了加强,类似装饰者 ...

  8. TS学习随笔(六)->断言

    now,我们来看一看TS里面的断言,听起来很上档次啊,其实看完你就发出惊叹,这就是断言啊 类型断言 类型断言(Type Assertion)可以用来手动指定一个值的类型 语法 <类型>值 ...

  9. ABP大型项目实战(1) - 目录

    前面我写了<如何用ABP框架快速完成项目>系列文章,讲述了如何用ABP快速完成项目.   然后我收到很多反馈,其中一个被经常问到的问题就是,“看了你的课程,发现ABP的优势是快速开发,那么 ...

  10. Mac 终端 显示隐藏文件

    defaults write com.apple.finder AppleShowAllFiles Yes && killall Finder //显示隐藏文件 defaults wr ...