好题flag--(7.2)

codeforces#310 D - Case of Fugitive

题意:

给定N个区间,和m个点,问对于每个区间,是否都存在一个点?要求点不能重复使用,也就是只能匹配一个区间!

思路:

贪心,先对所有的区间 [L,R] 排一下序,优先把 R 小的排在前面,然后L小的排在前面!因为我们要每一个区间都能匹配到一个点,所以对排好序的区间,开始去寻找点!遍历排好序的区间[Li,Ri],二分找到第一个大于 Li 的那个点,如果未能找到点或者这个点 >Ri ,就是不满足条件了。否则找到点的话,就从set中除去这个点!

codeforces#311 D - Vitaly and Cycle

题意:

给定一个无向图,没有重边和自环,求想要得到奇环最少需要加多少条边,和方法总数!

思路:

首先呢,可以看出最多只需加3条边,我们可以分类讨论一下!
1. m=0,就是 n(n1)(n3)/6 ,即加上3条边;
2. 加上2条边的情况,也就是每个连通分量最多2个点,这样的话,加边的方法总数就是 m(n2) ;
3. 加上1条边的情况,就是不存在奇环的时候。
4. 加0条边,就是已经存在奇环了,直接输出 01 就行了!
那么现在的关键就是如何判断无向图是否存在奇环!直接dfs对每个节点染色就行啦!一旦两个相连的节点所染的颜色一样,那么就是存在奇环了!同时我们需要记录下每次dfs过程中两种颜色的节点的个数记为 cnt1,cnt2 ,那么所加的这一条边一定是连接两个颜色相同的点,所以答案要加上 cnt1(cnt1)/2+cnt2(cnt21)/2
*其实难点就是去判奇环,染色也是属于一种比较常见的方法吧!GET~

Codeforces #236 (Div. 2) C-Searching for Graph

题意就是让你构造含N个点的一个图,使得边的总数为 2n+p ,同时对于顶点数为K的子图,总边数不超过 2k+p1<=k<=n5<=n<=24 ,主要就是要求图的边尽量均匀分布嘛,就乱搞一下,具体做法呢,就是假设N个点排成一个环,我们可以选择隔 0,1,2,3,.....n2 个点来连边,这样的话可以保证图的均匀性!

Codeforces Round #238(div2) D

题意:

给1000000个数,先选择了n个数 Ni ,要你从剩下的数中选择一些数 Mi ,使得 sigma(Ni1)=sigma(1000000Mi) ,并输出这写数!

思路:

直接强行上的话,1000000的数据是无力的,所以构造一发,按照题意的定义的话,会发现 x 1000000x+1是等价的,也就是如果先选择的数里存在 x 的话,我可以通过选择1000000x+1达到目的,但是问题就在于先前同时选择了 x 1000000x+1的话,会发现其实这两个数的和就是一个固定的数,也就是如果先前选择了一个等价类的话,后面我们可以通过选择一个未被取走的等价类达到目的。所以这个题就简单啦!(PS:嗯嗯!从数据范围及题目描述要敏锐地看出这是一个强行构造题!)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值