05 2019 档案

摘要:嘟嘟嘟 这题一大早开的,花了一个点儿推了一个$O(n ^ 4)$的做法,虽然过不了,但这是也是对计数这么烂的我的一个极大的鼓舞(耶!)。 我当然是先说我自己的做法啦!想看正解的巨佬们往下翻。。 这题第一眼就是到肯定得容斥,但关键是怎么容斥。 我的做法是用所有方案减去不合法的方案,剩下的就是合法的方案 阅读全文
posted @ 2019-05-31 22:51 mrclr 阅读(308) 评论(0) 推荐(0)
摘要:嘟嘟嘟 这题刚开始把$17!$想成了$2 ^ {17}$,以为全排暴力枚举就行,然后写一半发现好像只能过$n \leqslant 10$的点。 讨论正解之前,我们先想状压dp,毕竟这个数据范围就像状压。$dp[i][j][S]$表示点$i$所在子树中,$i$对应$j$,子树的对应情况为$S$时的方案 阅读全文
posted @ 2019-05-30 09:07 mrclr 阅读(201) 评论(0) 推荐(0)
摘要:嘟嘟嘟 这题以前写过弃掉了,后来竟然连自己的68分写法都看不懂了…… 这次回首这道题,心想怎么说也得把这题切了,哪怕抄题解也行。 但没想到别人的题解自己怎么也看不懂,最终还是自己搞出来了(我真nb)。 总用时前一天下午到第二天凌晨0:30+第二天半个上午。 我们先来回顾$L = 1, R = n$的 阅读全文
posted @ 2019-05-29 22:43 mrclr 阅读(671) 评论(0) 推荐(1)
摘要:没有嘟嘟嘟,权限题。 放个题面 首先能想到$2 ^ {10}$枚举所有baka数,然后好像只能暴力容斥了…… 没错就是容斥,不过接下来有几个重要的剪枝。 1.如果某一个baka数是另一个数的倍数,我们就筛去他。 2.容斥的时候,如果当前lcm大于R的话,及时返回。 最后剩下500个左右,然后就过了… 阅读全文
posted @ 2019-05-29 14:47 mrclr 阅读(245) 评论(0) 推荐(0)
摘要:嘟嘟嘟 谁说CQOI的题都是板儿题,我就觉得这题挺难的…… 看到数据范围这么小,就会想状压。然而$2 ^ {28}$肯定过不了。不过对于所有的极小值的格子,最多不会超过8个,所以我们状压选了哪些局部极小值的格子(坑儿)。 然后我们从小到大填数,那么对于一个数$i$,他无非就两种填法:填入一个坑,或是 阅读全文
posted @ 2019-05-29 13:44 mrclr 阅读(292) 评论(0) 推荐(0)
摘要:嘟嘟嘟 此题不难。 这种题做几道就知道些套路了:我们枚举酒有几堆,这样就能算出食物有多少堆以及他们的排列数,那么概率就是合法方案数 / 总方案数。 设酒有$i$堆,那么就有$C_{w - 1} ^ {i - 1}$种排列方法,对应的食物堆数就可能有$i - 1, i, i + 1$堆,然后同样用隔板 阅读全文
posted @ 2019-05-28 08:35 mrclr 阅读(153) 评论(0) 推荐(0)
摘要:嘟嘟嘟 看到这道题本质不同的定义就觉得这题挺奇怪的,估计组合计数之前得有一些转化吧。 反正我是没搞出来。 通过打表找规律(???),发现序列无非这两种情况: 1 2 1 2 1 2 3 2 3 2 3 4 3 4 1 2 1 2 3 2 3 2 3 2 3 4 3 也就是结尾可能是最大值,可能是最大 阅读全文
posted @ 2019-05-27 22:57 mrclr 阅读(165) 评论(0) 推荐(0)
摘要:嘟嘟嘟 如果没有限制,而且必须选$m$件的话,就是隔板法$C_{n + m - 1} ^ {m - 1}$了。现在要选至多$m$件,那么就相当于新增一个板儿,分出的新的盒子表示“多出来的”,也就是说前$m$个盒子是选出来的宝具,这样就能满足至多$m$个的限制了,即$C_{n + m} ^ $。 从公 阅读全文
posted @ 2019-05-27 22:38 mrclr 阅读(291) 评论(0) 推荐(0)
摘要:嘟嘟嘟 bzoj上$1e8$果然过不了…… 这题比较好想,毕竟我都想出来了。 我们可以枚举序列长度,然后用隔板法求出不递减序列个数。令序列长为$i$,,数字值域区间$m = R - L + 1$,因为有的数字可以不出现,所以就是$C_{i + m - 1} ^ {m - 1}$。 那么答案就是$\s 阅读全文
posted @ 2019-05-27 21:58 mrclr 阅读(241) 评论(0) 推荐(0)
摘要:嘟嘟嘟 因为刚刚做过一道类似的,所以感觉容斥可做。 但自己还是没有搞出来,容斥这方面没做多少题果然是硬伤。 对于每一种特产都用插板法算出分配方案,然后乘起来就是有人可能啥都没得到的方案数,即$\prod C_{n + a_i + 1} ^ {n - 1}$。 这时候用容斥,减去至少有一个人什么都没有 阅读全文
posted @ 2019-05-27 16:20 mrclr 阅读(96) 评论(0) 推荐(0)
摘要:嘟嘟嘟 这题放在高二的期末好像也没什么问题…… 刚开始我的想法是用男生分割老师,再用男生分割女生。但这样是错的,因为可以用女生分割老师。 所以我们分两种情况: 1.男生先把老师分开了:那么排列数就是$A_{n + 1} ^ {2} * A_{n + 3} ^ m * n!$。因为每一个人都不同,所以 阅读全文
posted @ 2019-05-27 10:30 mrclr 阅读(256) 评论(0) 推荐(0)
摘要:"嘟嘟嘟" 我就纳闷儿这题为啥是紫题,原来是因为卡内存…… 这题前面讲了半天的随机数怎么生成,我还以为要在这搞什么事情。然而你只要按题目$O(n m + q)$生成一个矩阵就没了。 关于选路径,因为最后要排序,所以肯定是贪心的从小的开始选,能选就选,选到$n + m 1$为止。 选的时候判断这个数能 阅读全文
posted @ 2019-05-26 09:46 mrclr 阅读(268) 评论(0) 推荐(0)
摘要:嘟嘟嘟 NOI2014水题第二道。 起手暴力,神经兮兮的写了个$O(Tn ^ 2)$的双哈希,只得了30分。(5e8开O2果然跑不过去) 昨晚写的暴力,今天又看了看这道题,发现就是求一个点跳多少次fail指针能到头。这个求fail指针的时候顺带就能递推出来。然后直接暴力跳kmp的fail指针直到不大 阅读全文
posted @ 2019-05-24 17:22 mrclr 阅读(180) 评论(0) 推荐(0)
摘要:"嘟嘟嘟" 这题算是NOI系列罕见的水题吧。 按位考虑,观察到经过每一个门无非就是4种情况:0变0,0变1,1变0,1变1。更概括的来说,就是两种情况:这一位变成1,和这一位变成0。 所以从高位到低位贪心即可。 变成1,如果满足$m$的范围,就选;变成0,如果1和0都变成了0,那么我们自然选0,这样 阅读全文
posted @ 2019-05-24 15:53 mrclr 阅读(167) 评论(0) 推荐(0)
摘要:(没有嘟嘟嘟) 权限题,请各位自己想办法交。不过代码正确性是可以保证的,至于为啥那不能说。 刚学完卡特兰数,就给我这种神题,我除了知道$n$个点的不同形态二叉树的数目是卡特兰数外,别的就不会了。 所以又去学了博弈论(以前学过,弃了)。 首先这道题叫“树上删边游戏”,然后有一个结论:一个节点的sg函数 阅读全文
posted @ 2019-05-22 17:24 mrclr 阅读(256) 评论(0) 推荐(0)
摘要:嘟嘟嘟 这题刚开始不太会,学姐也没什么好方法,题解说的什么阶梯NIM又不懂…… 这时候学姐说,干脆直接记搜吧,反正就$O(2 ^ {20})$。 首先这道题,每一行都是一个独立的游戏,所以整个游戏的sg函数应该是每一行的sg函数的异或和。 每一行的sg函数就是初始状态对应的sg函数。 观察到这是一个 阅读全文
posted @ 2019-05-22 15:51 mrclr 阅读(225) 评论(0) 推荐(0)
摘要:嘟嘟嘟 在luogu上看到这是一道蓝题,结果自己想了一个多点也没做出来…… 但是自己概括的题意还是很准的:构建一棵最多有$K$个叉的$n$个叶子节点的树,每一个叶子节点有一个给定的权值,使每一个叶子节点的权值*到根节点的距离之和最小。 当时只发现了如果把权值从大到小排序,那么他们距树根的距离一定是单 阅读全文
posted @ 2019-05-22 09:55 mrclr 阅读(304) 评论(0) 推荐(0)
摘要:嘟嘟嘟 以前学SAM的时候看到过这道题,但因为当时才疏学浅,就姑且弃疗。如今刷到NOI2015,又遇到了这道题。 既然在刷NOI的题,那首先就应该想暴力。 $O(n ^ 3)$的暴力就是枚举长度,再枚举点对,哈希判相同子串。太捞了,不想写。 $O(n ^ 2)$也比较好想。我们把枚举点对的过程优化掉 阅读全文
posted @ 2019-05-22 09:32 mrclr 阅读(310) 评论(0) 推荐(0)
摘要:嘟嘟嘟 从今天开始搞一搞组合计数! 先学一个错排公式。 所谓的错排就是一个排列,满足对于任意的$i$,有$a[i] \neq i$。 这东西是可以递推求的。 令$d[i]$表示长度为$n$的排列的错排数。我们假设$d[n - 1]$已经求出来,现在考虑第$n$个。 首先第一个肯定要和其中任意第$i$ 阅读全文
posted @ 2019-05-20 22:10 mrclr 阅读(343) 评论(1) 推荐(0)
摘要:"嘟嘟嘟" 关于这题为什么逆推想了半天。 看数据范围就很容易想到状压,令$dp[i][S]$表示第$i$轮,选取宝物的状态为$S$时的期望得分。 但是这样用刷表法递推的时候,会产生一些凭空的状态。又考虑到终止状态是已知的,即每一个$S_i$都可能是终止状态,所以我们逆推。这样答案就是$dp[1][0 阅读全文
posted @ 2019-05-20 17:08 mrclr 阅读(139) 评论(0) 推荐(0)
摘要:"vjudge嘟嘟嘟" 看一眼数据范围,发现可以状压。 转移的话,就枚举接下来抽哪一张卡,发现可能转移到别的状态,可能还是这个状态。把方程列出来移项,就变成了$a x_i = 1 + p_j x _j + p_k x _ k + \ldots$。然后我们逆推即可。 时间复杂度$O(2 ^ n n)$ 阅读全文
posted @ 2019-05-20 15:26 mrclr 阅读(104) 评论(0) 推荐(0)
摘要:嘟嘟嘟 看到数据范围很小,就可以暴力$O(n ^ 3)$dp啦。 我们令$dp[i][j][k]$表示这三种人分别剩$i, j, k$个的概率。然后枚举谁挂了就行。 这里的重点在于两个人相遇的概率是多少,拿$i, j$举例,乍一看是$\frac{i * j}{(i + j + k) * (i + j 阅读全文
posted @ 2019-05-20 12:51 mrclr 阅读(114) 评论(0) 推荐(0)
摘要:嘟嘟嘟 这题前前后后写了大半个上午…… 首先答案肯定是-1,0,1,2这几种。 思路就是tarjan判有无割点。因为图太大,所以考虑“离散化”,对于每一个蛐蛐,把他周围55的跳蚤拿来建图。为什么不是33呢,因为如果一个蛐蛐在边界,3*3中的方格就会把一个跳蚤算成割点。 讲道理这题就没了,但是有特别多 阅读全文
posted @ 2019-05-19 14:04 mrclr 阅读(308) 评论(0) 推荐(0)
摘要:嘟嘟嘟 友情提示:数据把$hp1$和$hp2$弄反了! 进入正题。 这题还是比较好想,令$dp[i][j]$表示第一个人赢了$i$场,第二个人赢了$j$的概率,转移就是分别考虑这一场谁赢了。 所以我们要预处理两个人赢的概率。显然有$winA = \sum _ ^ 6 \sum _ ^ {i - 1} 阅读全文
posted @ 2019-05-19 09:10 mrclr 阅读(247) 评论(0) 推荐(0)
摘要:嘟嘟嘟 这题和某一类概率题一样,大体思路都是高斯消元解方程。 不过关键还是状态得想明白。刚开始令$f[i]$表示炸弹在点$i$爆的概率,然后发现这东西根本无法转移(或者说概率本来就是$\frac$?),于是就考虑换状态。 一个非常好的状态是炸弹传到点$i$的概率,这样答案再乘以一个$\frac$就好 阅读全文
posted @ 2019-05-18 19:17 mrclr 阅读(109) 评论(0) 推荐(0)
摘要:嘟嘟嘟 某谷又恶意评分,这题就是一个紫题吧…… 这种概率期望的题做多了思路就来的特别快。令$f[i][j]$表示姓P的在点$i$,姓V的在点$j$的概率,转移的时候考虑这俩哥们动不动地儿就行了:\(f[i][j] = p_i * p_j * f[i][j] + p_i * \sum \frac{1 阅读全文
posted @ 2019-05-18 15:34 mrclr 阅读(400) 评论(0) 推荐(0)
摘要:嘟嘟嘟 这题挺好想的,就是特别难写。 首先如果$n \leqslant 100$,就是一个人人都会的$O(n ^ 3)$高斯消元。但现在$n \leqslant 10000$就不行了,不过数据给了提示,告诉我们强连通分量的大小最大为100。这启发我们首先得tarjan缩点,建出DAG。 然后我们观察 阅读全文
posted @ 2019-05-18 13:37 mrclr 阅读(127) 评论(0) 推荐(0)
摘要:嘟嘟嘟 此题并不难。 因为$n \leqslant 500$,所以把每一个值看成一个状态,于是对于每一个状态,暴力$O(k ^ 3)$枚举转移。然后因为有一条到$f[0]$的转移,所以可以用高斯消元求解。 但因为$T \leqslant 300$,所以直接高斯消元会TLE的。这时候我们观察方程,发现 阅读全文
posted @ 2019-05-17 19:10 mrclr 阅读(135) 评论(0) 推荐(0)
摘要:嘟嘟嘟 这题卡精度!,我对拍了近1w组数据都没拍出来,辛亏最后看了HDU的讨论版。 首先对于每一个房间,令$x_u$表示从这个点出发的期望步数,很容易列出方程:\(x_u = K_i * x_1 + (1 - K_i - E_i) * (1 + \sum x_v)\)。 当我快快乐乐的写完了高斯消元 阅读全文
posted @ 2019-05-17 17:03 mrclr 阅读(215) 评论(0) 推荐(0)
摘要:嘟嘟嘟 这题还给样例解释了,那自然能想到dp。 因为比赛形式构成了一个树形结构,而且还和线段树的结构一模一样,那就索性这么dp:令$dp[u][i]$表示在节点$u$,$i$获胜的概率。 然后我们枚举左右儿子谁赢,就很容易搞出转移方程:\(dp[u][i] = \sum dp[u << 1][i] 阅读全文
posted @ 2019-05-17 14:14 mrclr 阅读(123) 评论(0) 推荐(0)
摘要:luogu嘟嘟嘟 这题刚开始特别容易理解错:直接枚举所有$n + 1$种情况,然后算哪一种情况合法,再统计答案。 上述思想的问题就在于我们从已知的结果出发,默认这种每一种情况中取出$q$个红球,$p -q$个蓝球的概率是1,但实际上无法保证取出的红球或是蓝球的数量刚好是这些。 那应该是啥咧,设袋中红 阅读全文
posted @ 2019-05-17 11:14 mrclr 阅读(146) 评论(0) 推荐(1)
摘要:loj嘟嘟嘟 学完模拟退火后开始搞这道题,搞了一下午最终搞到了80分,剩下的实在不知道怎么办了…… 首先肯定是把有交点的线段划分到一个集合,然后对每一个集合求一遍凸包。 然后两两合并,如果新的凸包的周长更小,那必定合并。 但有可能三个或以上合并才更优,所以上述算法肯定不行。 这时候就要模拟退火了。 阅读全文
posted @ 2019-05-17 07:49 mrclr 阅读(416) 评论(1) 推荐(0)
摘要:嘟嘟嘟 那天看高一的在做这道题,觉得很有意思,就拿来看看,发现自己没想出来啊…… 首先这是一道图论题! 我们记最小的$a_i$为$Min$,那么如果一种方案能达到$Min * i + t$,那么必定能达到$Min * j + t (j > i)$。而如果想有尽量多的解,那么对于等式右边每一个值$t( 阅读全文
posted @ 2019-05-17 07:14 mrclr 阅读(338) 评论(0) 推荐(0)
摘要:CTS2019Day2T1出了道可以乱搞的的计算几何,我辛辛苦苦写了280多行,结果就给了我10分,这不气炸了。 据我分析,可能是因为我没有学过模拟退火,乱搞是真的乱搞,儿切既没有经验也没有感觉:比如随机前20个最优性合并。 所以我就决定先把模拟退火学了。 这东西特别好理解,但是原理我是真的搞不懂, 阅读全文
posted @ 2019-05-16 23:03 mrclr 阅读(582) 评论(0) 推荐(0)
摘要:嘟嘟嘟 涉及到概率的题,估计我就只会这种吧…… 这一类概率问题比较好想,就是每一种情况/总方案数。而这两者一般都可以分别维护。 对于这道题,因为是一条链,于是把边看成点,那么总方案数就是$C_{R - L + 1} ^ 2$,询问的时候直接搞出来就行。 关键是分子。很显然得先推推式子。有一个技巧就是 阅读全文
posted @ 2019-05-16 22:31 mrclr 阅读(213) 评论(0) 推荐(0)
摘要:嘟嘟嘟 这题似乎不是很难。 自己口糊了一个$O(n ^ 2)$算法,搞了60分。思路就是先把区间离散化,然后枚举区间的公共点$x_i$,再$O(n)$判断哪些区间包含这个点,然后观察到如果把这些区间按长度排序,可选的最优解一定是长度为$m$的连续一段区间,所以再$O(n - m)$扫一遍。 先把区间 阅读全文
posted @ 2019-05-10 08:26 mrclr 阅读(182) 评论(1) 推荐(0)
摘要:嘟嘟嘟 这题不得不吐槽一下,$O(n ^ 2)$哈希能得95分,那么考场上有人写正解吗?或许只有队爷儿吧 正解思路特别妙,这篇题解也很妙:题解:[NOI2016]优秀的拆分(洛谷第一篇题解,带图的那个)。 我这绝对不是在水博客,因为那篇题解讲的太清楚了,我都不知道补充啥好。 然后因为$n$不是很大, 阅读全文
posted @ 2019-05-07 20:12 mrclr 阅读(189) 评论(0) 推荐(0)
摘要:嘟嘟嘟 现在看来这道题还不是特别难。 别一看到字符串就想SAM 看到$k$很小,所以我们可以搞一个单次修改复杂度跟$k$有关的算法。 能想到,每一次断开或链接,最多只会影响$k ^ 2$个长度为$k$的区间。所以我们开一个哈希表,每一次拼接时就往哈希表里加入$k ^ 2$个新的哈希值,断链的时候就把 阅读全文
posted @ 2019-05-07 14:49 mrclr 阅读(157) 评论(0) 推荐(0)
摘要:嘟嘟嘟 这题也太暴力了…… 考虑如果没有'x'的情况,那就是2-SAT水题。有了'x'怎么办?因为'x'最多只有8个,所以我们暴力枚举,时间复杂度$O((n + m) * 3 ^ 8)$。这算出来后大约是$9e8$,所以就没敢写…… 然而这实际上根本跑不满,找到合法的就exit(0),几乎每一个点不 阅读全文
posted @ 2019-05-07 08:28 mrclr 阅读(161) 评论(0) 推荐(0)
摘要:"嘟嘟嘟" 这题搞了将近一个下午,总算给搞懂了。 真心觉得NOI2017比NOI2018难多了(貌似有目共睹?)。 这题拿到后就觉得是一个贪心,但是当时就想着正着推,每一次找价值最大的卖,然后如果到了一个截止日期就把一些卖出去“收回来”换成一些价值小的蔬菜,好挣他们的第一笔前$s_i$,总的来说就是 阅读全文
posted @ 2019-05-06 23:18 mrclr 阅读(241) 评论(0) 推荐(0)
摘要:这篇博客主要是用来记自己写代码的时候犯的各种小技巧和低级失误,好提醒自己,从而尽量缩短debug时间。 点分治 1.求每一个子树到重心的距离的函数接口应该是dfs2(v, eg, e[i].w)而不是dfs2(v, now, 0)。一方面是子树的父亲是当前的重心,而不是进入这一层点分治的点;另一方面 阅读全文
posted @ 2019-05-06 08:04 mrclr 阅读(548) 评论(0) 推荐(0)
摘要:嘟嘟嘟 先二分。 令二分的值为$mid$,则对于每一行都要满足$|\sum_ ^ (A_ - B_)|\(,把绝对值去掉,就得到了\)(\sum_ ^ A_) - mid \leqslant \sum_ ^ B_ \leqslant (\sum_ ^ A_) + mid$。(列同理) 这就很明显了, 阅读全文
posted @ 2019-05-05 22:49 mrclr 阅读(155) 评论(0) 推荐(0)
摘要:嘟嘟嘟 这题看数据范围大概能猜出来是网络流。 看到网格图,就会想到这么两种解决方法:黑白染色或每一行每一列看成一个点。 而不管用哪种方法,目的都是建立二分图,把冲突用连边表示出来,而同一侧的点之间没有冲突。 对于这道题,黑白染色肯定gg,但是第二种方法也不是很好,毕竟同一行可能放多个炸弹的。换句话说 阅读全文
posted @ 2019-05-05 22:27 mrclr 阅读(125) 评论(0) 推荐(0)
摘要:嘟嘟嘟 这题不愧是冬令营的题,有思维难度。 题面就是说有一个完全图,让你给一些无向边定向,使三元环最多。 这题关键就是怎么计数三元环。直接记非常难,所以我们要正难则反!三元环总数是$C_ ^ {3}$,然后考虑什么情况会破坏三元环:当一个点的出边大于1时,记$d_i$是$i$的出边数量,则破坏的三元 阅读全文
posted @ 2019-05-05 18:50 mrclr 阅读(118) 评论(0) 推荐(0)
摘要:嘟嘟嘟 这是一道上下界费用流的模板题。 源点就是1,汇点没有,所以我们把每一个点都连向汇点,因为可以在任意一个点退出游戏。 上下界费用流的建图方法和上下界网络流的建图方法一样。都是建立附加源汇。只不过每条边多了个费用。 有费用的边就是他自己的费用,其他的(比如补偿用的边)的费用全是0。然后我们跑费用 阅读全文
posted @ 2019-05-05 16:27 mrclr 阅读(155) 评论(0) 推荐(0)
摘要:嘟嘟嘟 这其实就是一个最小流的板子题。把每一条边的流量至少为1,然后建立附加源汇跑一遍最大流,连上$t, s$,再跑一遍最大流就是答案。 刚开始我想错了:统计每一个点的出度和入度,去两者较大值$w$,则流经这个点的流量至少为$w$。所以我就拆点,从$i$向$i'\(连一条容量为\)[w, INF]$ 阅读全文
posted @ 2019-05-05 14:05 mrclr 阅读(151) 评论(0) 推荐(0)
摘要:其实特别好理解,我们只要写一个数据结构(线段树)支持一下操作: 1.插入一个数$x$。 2.查询当前数据结构中最小的数的插入编号。 3.删除插入编号为$x$的数。 第一眼看成可持久化了 其实就是一个单点修改,区间(全局)查询的线段树。 zkw线段树在普通线段树的基础上进行了优化(卡常神器)。 我们记 阅读全文
posted @ 2019-05-04 22:34 mrclr 阅读(556) 评论(0) 推荐(0)
摘要:嘟嘟嘟 首先明确一点的就是,每一个个点的海拔只可能是0或1. 至于证明,也不难。自己画一个点,周围连着一些海拔为0或1的点,然后发现无论什么情况,这个点的海拔取或1的时候都是最优的。 既然知道这一点了,那也就是说,对于每一条边,要么不耗体力,要么消耗$w_i$的体力。 然后数据范围就告诉我们是最小割 阅读全文
posted @ 2019-05-03 22:17 mrclr 阅读(187) 评论(0) 推荐(0)
摘要:嘟嘟嘟 这道题的切入点在于模型的转化。 令第$Lab$条边连接的两个点分别为$x, y$。根据kruskal算法,我们排完序加边的时候,在执行第$Lab$条边之前,都要保证$x, y$不连通。这就很像最小割了。 所以我们把边权小于$w_$的都拿来建图,那边权是啥咧?题中说的除了一条边其余的都减1,那 阅读全文
posted @ 2019-05-03 15:52 mrclr 阅读(151) 评论(0) 推荐(0)
摘要:嘟嘟嘟 这题我看了半天才懂,一直以为这一刀必须横平竖直的,谁知道这题这一道怎么拐都行,只要满足相邻的高度差不大于$d$就行。 看数据范围,猜是最小割。 先不考虑限制。对于每一个$(x, y)$,我们只能从$r$个$f(x, y)\(选一个,问最小的\)\sum v$。如果每一个点只有两个选择,那自然 阅读全文
posted @ 2019-05-03 15:11 mrclr 阅读(166) 评论(0) 推荐(0)
摘要:嘟嘟嘟 这题我没想出来…… 刚开始我是想把连续的一段看成一个点,这样最多有$2n - 1$个点,复杂度可以接受,然后把离散化后的点都想汇点连边。从源点向每一个限制连边,每一个限制向对应的区间中的所有点连边。这个图看似挺好,但是他必须满足每一个限制的出边全流满。这显然是不可能的,因为网络流可以增广的条 阅读全文
posted @ 2019-05-02 08:31 mrclr 阅读(258) 评论(0) 推荐(0)
摘要:嘟嘟嘟 这题没想出来,还是菜。 知道是最小割,但不知道怎么建立关系。 首先,都能想到(除了我)两个奇数一定满足条件1,两个偶数一定满足条件1。所以只用考虑奇偶之间能否同时选。 然后搞一个二分图,暴力判断,如果不能同时选,就连一条INF的边。 #include<cstdio> #include<ios 阅读全文
posted @ 2019-05-01 16:49 mrclr 阅读(131) 评论(0) 推荐(0)
摘要:嘟嘟嘟 这其实就是一道最小边覆盖的板儿题。 暴力连边,然后跑匈牙利(dinic),则答案就是总结点数-匹配数。 比如节点1和2,2和3匹配上了,那么就是1到2,2到3这两条路径连接到一块,相当于把节点3合并到这条路径上了。所以从路径数就是总结点数-连接次数。 然而我不知怎么想的写了个费用流,虽然正确 阅读全文
posted @ 2019-05-01 11:30 mrclr 阅读(120) 评论(0) 推荐(0)
摘要:嘟嘟嘟 带权最小边覆盖? 最小边覆盖可以用二分图解决,那带权怎么办? 一时zz想不出来,看了一眼标签发现跑费用流就行。 把每一个点拆成$i$和$i'$,源点向$i$连容量为1,费用为0的边,$i'\(向汇点连\)(1, 0)$的边。然后如果$x$到$y$有边$(x < y)$,从$x$到$y$连$( 阅读全文
posted @ 2019-05-01 10:39 mrclr 阅读(132) 评论(0) 推荐(0)