WuliWuliiii
凤兮凤兮归故乡 遨游四海求其凰
摘要: 题目链接 很明显的,我们可以去算每个点变色的概率就是用单位1减去不变色的概率,那么就是这个点变色的概率了,期望就是将这些概率相加就可以了,当然,黑色点本身就是黑色的。 1 #include <iostream> 2 #include <cstdio> 3 #include <cmath> 4 #in 阅读全文
posted @ 2020-12-23 16:00 唔哩Wulili 阅读(81) 评论(0) 推荐(0) 编辑
摘要: 题意:有N个矩阵,每个矩阵有两个对角线,现在从每个矩阵的两条对角线中选出一条,使得选出的这N条对角线相互之间没有相交。 思路:首先我们可以假设,选对角线1或对角线2,那么就能有选1不能选1'这样的情况出现,我们将这样的情况去建图,那么其实就是一个2-SAT问题,那么剩下的就是判断线段交了,这里推荐快 阅读全文
posted @ 2020-12-18 14:49 唔哩Wulili 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 题目链接 很明显的,有“大于”和“小于等于”两种情况,且一旦“大于”了,只能继续“大于”下去,如果“小于等于”,还可以选择任意一种情况。于是乎,直接数位dp,并且记录这一位是“大于状态”还是“小于等于状态”,就可以进行记忆化了。 1 #include <iostream> 2 #include <c 阅读全文
posted @ 2020-12-15 18:52 唔哩Wulili 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 题目链接 很明显,我们很难直接求出“包含长度大于等于2的回文串”的字符的个数,但是我们却可以较为容易的求出“不包含任何长度大于等于2的回文串”的字符的个数,那么我们不如采用正难则反的策略,用总的减去不合法的,那么得到的就是合法的串的个数了。 1 #include <iostream> 2 #incl 阅读全文
posted @ 2020-12-15 14:50 唔哩Wulili 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 题目链接 如果考虑成为数位dp的话,应该怎么做呢? dfs(数位,数位和,状态,是否为阈值); 很明显,dfs是这样的,但是会发现,这样的状态记录会是很大的,无法用数组记录,此时,我们不妨枚举数位和,又有数位和==模值,最后的状态应该为0、且数位和==模值。所以dp方程显而易见。 1 #includ 阅读全文
posted @ 2020-12-14 21:27 唔哩Wulili 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 题目链接 很明显的数位DP,但是为什么会有0分的情况呢?可能有这样的两种情况没有考虑到: 1000000000000 1000000000000 100 110 首先,想到的是做一个差分的办法来解决这个问题,那么就是求0~X的这样的一个前缀0、1、2、3、…… 、9在数位中出现了多少次。很明显的,就 阅读全文
posted @ 2020-12-14 19:30 唔哩Wulili 阅读(84) 评论(0) 推荐(0) 编辑
摘要: 题目链接 有N个字符串,现在要求我们输出1~N个字符串的首尾相接串,并且字典序最小。 所以,首先对N个字符串sort一下,然后再是进行处理,我们可以用一个栈来维护答案,然后为了避免访问重复的字符串,所以,每个点用一个队列去进行维护,然后用过之后就弹出,复杂度为O(N)。其余的,就是欧拉通路的基本操作 阅读全文
posted @ 2020-12-01 16:02 唔哩Wulili 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 题目链接 有N个场地,每个场地有不适应的赛车,这些场地不能派对应的赛车参赛,又有适合所有赛车的图(不超过8个),并且有的车有怪癖,i图使用col[i]车,则要求j图使用col[j]车。问,是否存在一种方案满足以上条件?并且输出,否则为-1。 很明显的,对于适合所有赛车的图,我们可以使用二进制枚举它是 阅读全文
posted @ 2020-11-30 20:29 唔哩Wulili 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题意:有24个只由「1,2,3」组成的格子,我们希望中间的8个格子的值是相同的,现在有8种移动的方式,A~H,分别将这些格子向这个方向上走,且第一个变成最后一个。然后,询问最少的次数(同最少时候,字典序最小),满足中间的8个格子是相同的,并输出这样的移动方式,以及最后的中间8个格子的答案是 阅读全文
posted @ 2020-11-11 16:09 唔哩Wulili 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 可撤销并查集——个人理解与学习笔记 网上有很多博客都是只放了一个代码,然后让读者自己解读代码,这里我写点自己的理解。 撤销的是什么?撤销的是操作。 如果我们让u和v链接,那么实际上是u和v的祖先是不同的,那么也就是fu = fid(u), fv = fid(v),如果fu!=fv,那么我们就将这样的 阅读全文
posted @ 2020-11-06 13:46 唔哩Wulili 阅读(116) 评论(0) 推荐(0) 编辑