01 2019 档案

摘要:"CF" "luogu" 先讲两个靠谱的做法 1.首先因为有n个点,m条不存在的边,所以至少存在一个点,和m/n个点之间没边,所以把这个点找出来,连一下其他相连的点,这样还剩m/n个点没确定在哪个联通块,而这些点最多和n 1个点有边,所以从这些点暴力合并即可 2.开一个队列/set/链表维护没有确定 阅读全文
posted @ 2019-01-26 14:57 ✡smy✡ 阅读(198) 评论(0) 推荐(0)
摘要:说起GG,我就想起被孙悟空吊打过的妖怪全都GG了,今年下半年,,,算了直接开花吧 阅读全文
posted @ 2019-01-22 21:50 ✡smy✡ 阅读(1270) 评论(15) 推荐(0)
摘要:"传送门" 如果每个位置上的数字的意义是这个位置被加进集合的最早时间,那么我们要求的就是集合中最大数的期望,使用Min Max容斥,$E(max(S))=\sum_{T\subset S}( 1)^{|T|+1}E(min(T))$,这里的$E(min(T))$是集合中加进数字的期望时间,根据题意, 阅读全文
posted @ 2019-01-17 22:35 ✡smy✡ 阅读(113) 评论(0) 推荐(0)
摘要:"传送门" ~~随便摸一发题解算了~~ 打表找规律 前五个答案是 其实是 底数就是类似于斐波那契数列,还有偶数项要减4 cpp include define LL long long define db double define il inline define re register using 阅读全文
posted @ 2019-01-17 15:02 ✡smy✡ 阅读(117) 评论(0) 推荐(0)
摘要:"传送门" 首先考虑N^2做法,每次从一个点出发,如果到达一个点,然后到达这个点的时间$\le$离这个点最近的叶子距离$di_x$,那么答案+1,否则继续找点 这个暴力很不好优化.可以这样认为,如果某个点贡献答案,那么子树里的点也要贡献答案(某个点走不下去,那么走子树内的点也走不下去,也符合条件), 阅读全文
posted @ 2019-01-15 22:40 ✡smy✡ 阅读(210) 评论(0) 推荐(0)
摘要:"传送门" 网络流又一~~神仙~~套路应用 首先考虑列不等式,设$x_i$为第i种人的个数,记$b_{i,j}$为第i种人第j天是否能工作,那么可以列出n个不等式,第j个为$\sum_{i=1}^{m}b_{i,j}x_i\ge a_j$ 然后将这些不等式转成等式,新开变量y,则那些不等式可以写为$ 阅读全文
posted @ 2019-01-14 22:25 ✡smy✡ 阅读(113) 评论(0) 推荐(0)
摘要:"传送门" 我真的弱,正解都不会~~还打了个错的暴力~~ 考虑平行线与x轴平行,那么可以按照y为第一关键字升序,x为第二关键字升序排序,然后合法的一段红点就是连续的一段,答案也就是最大的连续红色段 推广到一般情况,我们可以把所有点绕原点旋转,每次转着都会有两个点排序后的相对位置交换,可以用线段树维护 阅读全文
posted @ 2019-01-07 17:18 ✡smy✡ 阅读(263) 评论(0) 推荐(0)
摘要:$\large{RT}$ 阅读全文
posted @ 2019-01-07 17:01 ✡smy✡ 阅读(186) 评论(0) 推荐(0)