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),…