WuliWuliiii
凤兮凤兮归故乡 遨游四海求其凰
摘要: 题目链接 有N个值,其中他们为1~M,现在我们想知道满足1~i这些值都有的区间的最小长度是多长?保证存在这样的答案。 于是,我们可以考虑,从1开始,一直到M,我们想知道每个左端点包含1~i的最近右端点在哪里?然后答案就是min(R-L+1)了,然后就是怎么去维护这样一个东西。 首先,很容易发现,每个 阅读全文
posted @ 2020-10-27 09:37 唔哩Wulili 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 题目链接 有N个点,M条边组成的无向图,现在我们想知道删除一个点u,它会使得哪些x、y对,不能从x到达y,求对于每个点这样的<x,y>对的个数。 于是,很明显的就是,我们可以将它缩点成为一个广义圆方树,然后在树上跑就是了。 1 #include <iostream> 2 #include <cstd 阅读全文
posted @ 2020-10-14 16:08 唔哩Wulili 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 题目链接 有M条边,告诉你u、v两点有一条无向边,然后点是所有输入点的最大值,现在问如果有任意一个点被删除了,要保证剩下的点都有办法走到出口,所需要的最少建设的出口通道是几个?并且输出方案数。 很明显一点,如果某个强连通子图没有割点的话,那么说明这个子图==该联通子图,那么只需要从其中所有的点随便选 阅读全文
posted @ 2020-10-14 14:34 唔哩Wulili 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题意:有一个N*M的图,图上有这样的几种情况: ‘#’,此点为不可达到的点 小写字母,此点有陷进,进去一次就会扣(小写字母-'a'+1)的血 大写字母,有怪兽,如果你走到了怪兽点的毗邻的一个点,怪兽就会冲过来打你了,然后怪兽就死了,于是你会扣(大写字母-'A'+1)的血 其他情况是安全的 阅读全文
posted @ 2020-10-06 10:34 唔哩Wulili 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 题目链接LOJ-2107 我们可以对树上的每个点维护一个左偏树,维护的是在该点上的骑士的数量,以及他们的信息,他们的信息指的是他们的战斗力的值,此时还需要推一个lazy,对整个堆去推这个lazy即可。 1 #include <iostream> 2 #include <cstdio> 3 #incl 阅读全文
posted @ 2020-10-05 11:11 唔哩Wulili 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 题目链接 给一棵N个点的树,然后问以某个点作为节点的时候,其子树中在购买力为M的情况下最多购买多少个节点,对于所有的子树,求节点数乘以该子树根节点的b值的最大值。 于是,想到的做法就是对于每个点去维护一个大根堆,如果大根堆内的和超过了M,那么就需要弹出最大的节点,于是,就是维护一个大根堆的合并了,合 阅读全文
posted @ 2020-10-04 21:54 唔哩Wulili 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 题目链接 对于一个长度为N的字符串,我们想知道每个长度的串的最长出现次数,所以这里就用到了后缀自动机了,知道后缀自动机中每个点表示的长度为len[link]+1~len,所以其实我们可以直接给ans[len]去取最大值,然后跑一个后缀最大值即可。 1 #include <iostream> 2 #i 阅读全文
posted @ 2020-09-22 20:24 唔哩Wulili 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 题目链接 P5357 要找每个串的出现次数,实际上就是在fail树上进行处理了,我们知道,在fail树的祖先节点上的点,一定是在这之前的前缀的点,所以直接进行跳转就可以了。 1 #include <iostream> 2 #include <cstdio> 3 #include <cmath> 4 阅读全文
posted @ 2020-09-22 19:26 唔哩Wulili 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 题目链接 对于两个字符串,我们想知道他们有多少不同的公共子串,不妨可以考虑成对于戴尔个串的每个不同的后缀,有多少个相同后缀子串。 于是可以考虑成为,我们对于第一个串先建立一个后缀树(link树),然后对于第二个串,我们在第一个后缀树上跑,来求答案,但是第二个串要怎么跑呢?我们不妨将第二个串也插入到后 阅读全文
posted @ 2020-09-22 09:05 唔哩Wulili 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 模板题链接 可以从HDU-5306开始练手。 吉司机线段树可以解决什么问题? 譬如说区间操作:对[L, R]区间,使得L ≤ i ≤ R,a[i] = min(a[i], x)。 然后还有区间求和、求max、min这样的操作。 我们可以用O((n + q)log(n))的复杂度来解决这个问题。 只需 阅读全文
posted @ 2020-09-21 15:08 唔哩Wulili 阅读(248) 评论(0) 推荐(0) 编辑