codeforces_D. Social Circles
http://codeforces.com/contest/1060/problem/D
题意:
n个客人,每个客人希望自己左边空li个座位,右边空ri个座位,可以形成任意个圆,问最少多少个座位。
思路:
1、问题可以看作,给每个客人gi的左边找一个合适的另一个客人gj。其之间的空座数为max(l(gi),r(gj))。这样匹配,自然会匹配为若干个圆。
2、将l和r排序,按大小顺利依次匹配,这样的总座位数最少。
证明:假设现在l和r都递增排好序。从匹配中任意找两对,例如(a, b),(c,d),且a!=c,b!=d,将其换为(c, b),(a, d)。
1)当c<=b时,已知a<c和b<d,得a<c<=b<d,交换后,max(a, b)==max(c, b)==b,max(c, d)==max(a, d)==d
2)当c>b时,
2.1)c<=d。得a<c,b<c,c<=d。max(a, b)<max(c, b),max(c, d)==max(a, d)
2.2)c>d。得b<d<c,a<c。max(c, d)==max(c, b),max(a, b) 不可能大于 max(a, d)
证得,交换l序列中任意两个不同得数,总座位数不会减少。
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
#define LL long long int main()
{
int n,l[],r[];
while(scanf("%d",&n)!=EOF)
{
for(int i=;i<n;i++)
scanf("%d%d",&l[i],&r[i]);
sort(l,l+n);
sort(r,r+n);
LL res=n;
for(int i=;i<n;i++)
res+=max(l[i],r[i]);
printf("%I64d\n",res);
}
return ;
}
codeforces_D. Social Circles的更多相关文章
- 1060D Social Circles(贪心)
题意:有n个客人,第i个客人希望左边至少Li个空椅子,右边至少Ri个空椅子,每个客人都属于一个圈,问你最少需要准备的椅子数量 贪心做,每个人都可以去和另一个人牵手,组成一个新的人,那么我们让大的和大的 ...
- cf1060D. Social Circles(贪心)
题意 题目链接 Sol 我是这样考虑的:从大到小考虑每个\(l, r\),最大的\(l\)应该和最大的\(r\)匹配(不然就亏了),其次次大的\(r\)应该和次大的\(l\)匹配 然后就过了.. /* ...
- CF1060D Social Circles
思路: 贪心.既然每个人的左边是其他人的右边,每个人的右边是其他人的左边,那么使重叠的部分最多即可. 实现: #include <bits/stdc++.h> using namespac ...
- 10 signs you’re dating the wrong person
10 signs you’re dating the wrong person10个迹象表明TA不是你的真心人 Do you have any exes who were so awful ...
- 海量数据挖掘MMDS week3:社交网络之社区检测:高级技巧
http://blog.csdn.net/pipisorry/article/details/49052255 海量数据挖掘Mining Massive Datasets(MMDs) -Jure Le ...
- Codeforces Round #513 by Barcelona Bootcamp (rated, Div. 1 + Div. 2) C D
C - Maximum Subrectangle 因为是两个数组相乘的到的 矩阵所以 a(i ->j)*b(x->y) 的面积 就是 a(i ->j) 的和乘与b(x-> ...
- Codeforces Round #513 游记
Codeforces Round #513 游记 A - Phone Numbers 题目大意: 电话号码是8开头的\(1\)位数字.告诉你\(n(n\le100)\)个数字,每个数字至多使用一次.问 ...
- Codeforces Round #513 by Barcelona Bootcamp
A. Phone Numbers 签. #include <bits/stdc++.h> using namespace std; #define N 110 char s[N]; ], ...
- 【前行&赛时总结】◇第4站&赛时9◇ CF Round 513 Div1+Div2
◇第4站&赛时9◇ CF Round 513 Div1+Div2 第一次在CF里涨Rating QWQ 深感不易……作blog以记之 ( ̄▽ ̄)" +Codeforces 的门为你打 ...
随机推荐
- unbantu16.04安装jdk
1,解压缩jdk到指定目录 2,修改目录,方便使用 3,配置环境变量 sudo gedit /etc/environment 末尾加入以下配置(JAVA_HOME 后的路径就是jdk的文件位置) PA ...
- POJ - 1986 Distance Queries(离线Tarjan算法)
1.一颗树中,给出a,b,求最近的距离.(我没考虑不联通的情况,即不是一颗树的情况) 2.用最近公共祖先来求, 记下根结点到任意一点的距离dis[],这样ans = dis[u] + dis[v] - ...
- 洛谷 P1315 观光公交 —— 贪心
题目:https://www.luogu.org/problemnew/show/P1315 问题是想不明白改动一条边会对后面造成怎样的影响: 实际上影响的会是一段,当某个车站出发时间受其来人牵制时, ...
- hdu 2553(N皇后问题)
N皇后问题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- vue 使用过程中自己遇到的bug
需要安装npm git(windows系统需要安装) npm 是node的包管理工具 npm 国内的网站比较慢,推荐使用cnpm(淘宝的镜像) cnpm(npm) install 创建依赖-----因 ...
- 1.Ext.onReady详解
转自:https://blog.csdn.net/xufang461010923/article/details/37660139 我们知道,只有在Ext框架全部加载完后才能在客户端的代码中使用Ext ...
- join示例分析
join示例分析 public class TestJoin { public static void main(String[] args) throws InterruptedException ...
- IDEA Terminal
如果IDEA在Terminal中无法使用环境变量,提示没有此命令的话,请查看在cmd中是否可以正常使用,然后,请右击IDEA以管理员方式进行运行,Terminal就可以正常使用了
- bzoj 4247: 挂饰【dp】
bzoj上访问负下标会跑到奇怪的地方-- 其实可以滚动数组优化,但是我看能过就懒得改了 设f[i][j]为已经算了前i个挂饰,当前有j个空的钩子,转移就是f[i][j]=max(f[i-1][j],f ...
- bzoj 1027: [JSOI2007]合金【凸包+Floyd】
参考:https://www.cnblogs.com/zhuohan123/p/3237246.html 因为一c可以由1-a-b得出,所以删掉c,把a,b抽象成二维平面上的点.首先考虑一个客户需求能 ...