题意 给定两个字符串,求长度大于等于k的公共子串数。 分析 将两个字符串中间加个特殊字符拼接,跑后缀数组。 将题目转化为对每一个后缀求$\sum_{j=1}^{i 1}lcp(i,j)$,且后缀$i$和$j$属于不同字符串。 由于$lcp$只跟$h$数组的区间最小值有关,因此对于单调递减的$h[i] ...
分类:
其他好文 时间:
2019-08-25 21:36:42
阅读次数:
102
题意: 求$\sum_{i=1}^n\sum_{j=1}^m \mu({lcm(i,j)})$。 思路: 首先$lcm(i,j)=\frac{ij}{gcd(i,j)}$,不妨有$lcm(i,j)$无平方因子,那么就有$gcd(\frac{i}{gcd(i,j)},j)$互质,所以$\mu(lcm( ...
分类:
其他好文 时间:
2019-08-25 20:25:31
阅读次数:
182
题目: 分析: 题目大意:从任意点出发,任意点结束,在经过所有边的情况下选择两条边只经过一次,其它都经过两次。 先不考虑自环:这道题看起来很像欧拉路,但欧拉路是每条边只经过一次,那么我们考虑:把边数翻倍,选择两条边删去,使得剩下的是一个欧拉路。 边数翻倍后,每一个点的度数都是偶数 欧拉路的判定:只有 ...
分类:
其他好文 时间:
2019-08-25 20:06:45
阅读次数:
96
include include include include include using namespace std; define LL long long const LL N = 2e5 + 100; LL n, k, a[N], tot, ans; bool vis[N], cnt[N]; ...
分类:
其他好文 时间:
2019-08-25 14:11:44
阅读次数:
73
http://cogs.pro:8080/cogs/problem/problem.php?pid=vSXNiVegV 题意:给个树,第i个点有两个权值ai和bi,现在求一条长度为m的路径,使得Σai/Σbi最小。 思路:二分答案得p,把每个点权值变成ai-p*bi,看是否存在长为一条长为m的路使总 ...
分类:
其他好文 时间:
2019-08-24 23:05:33
阅读次数:
108
一、题目 Welcome Party 二、分析 最开始的时候分析错了,认为只要找两个类型中的最小差值就可以了,忽略了是求两个类型中最大值的最小差值。 那么可以对第一个类型进行从大到小排序,枚举这个类型的最大值,那么,枚举过的这个类型的人就不再选这个类型的值,而是选第二类型。 考虑对第二个类型处理,枚 ...
分类:
其他好文 时间:
2019-08-24 20:40:20
阅读次数:
109
前置芝士:最大流最小割 一. 啥是闭合图 一件事件x发生需要一个条件: 1. y事件已经发生 2. z事件已经发生 对于这样的依赖关系 , 我们可以用闭合来来描述或者解决 有向图的闭合图(closure)(来源于 胡伯涛《最小割模型在信息学竞赛中的应用》 论文 ) 物理意义:事物间依赖关系:一个事件 ...
分类:
其他好文 时间:
2019-08-24 17:04:16
阅读次数:
76
题意:给定一个带权有向图,有q组询问,每次询问在有向图的所有路径中,第k小的路径权值 解题思路:因为k最大只有5e4,考虑暴力搜索出前maxk小的路径并用数组记录权值,然后就可以O(1)查询。 具体实现:暴力搜索时可以借助Dijkstra最短路的思想,即用已知的最短路更新得出新的最短路。先将所有的边 ...
分类:
其他好文 时间:
2019-08-24 00:45:36
阅读次数:
137
莫比乌斯反演 ACWing215的升级版 直接计算啊a using namespace std; define go(i,a,b) for(int i=a;i inline void read(T &x){ x=0;char f=1,c=getchar(); while(!isdigit(c)){ ...
分类:
其他好文 时间:
2019-08-23 12:03:12
阅读次数:
124
首先来说C; 开启重定向语句: freopen("input.txt", "r", stdin); //将之后的读入都从input.txt中读入 freopen("output.txt", "w", stdout); //将之后的写入都写到output.txt中 关闭重定向语句: 关闭读入:freo ...
分类:
编程语言 时间:
2019-08-22 13:16:11
阅读次数:
89