摘要:
题目大意有一个人,去给m个女孩儿拍照,第i个女孩至少拍Gi张,第k天最多拍Dk张,需要给Ck个女孩拍照,分别是Tk1, Tk2, …, TkCk,每个女孩至少Lki张,最多Rki张。 问最多能拍多少张照片。分析就像无源汇点上下界可行流那样连边,最后从T到S连一条下届为0,上届为+∞... 阅读全文
摘要:
Manacher算法 算法总结第三弹 manacher算法,前面讲了两个字符串相算法——kmp和拓展kmp,这次来还是来总结一个字符串算法,manacher算法,我习惯叫他 “马拉车”算法。 相对于前面介绍的两个算法,Manacher算法的应用范围要狭窄得多,但是它的思想和拓展kmp算法有很... 阅读全文
摘要:
题目 分析:边的容量为上界-下界,d数组保存当前节点下界的入度-岀度的差。为了保证流量的平衡,当di>0是,入度减掉的l比岀度多,所以从超级源点向i连一条容量为di的边,否则,从i向超级汇点连一条容量为-di的边。 然后从SS到ST跑一次最大流即可。#include#include... 阅读全文
摘要:
CodeForces - 579E 可以发现结果关于x的函数是一个单谷函数,所以三分。#include#include#includeusing namespace std;#define MAXN 200000int a[MAXN+10],n;double l[MAXN+10];... 阅读全文
摘要:
题目 分析:将一个技术人员拆成n个点,分别和车连边,第j个技术人员拆成的第k个点修理第i辆车的费用为k*tm[i][j]. 当一辆车是这个技术人员修理的倒数第k辆车时,它对等待时间的总数贡的献为k*tm[i][j]. 最后,将总数/n即可.#include#include#incl... 阅读全文
摘要:
题目 分析:建图的方法还是比较难想。 首先,计算两个相邻时刻的差分,若a[i] a[i-1],就从源点向i连边,容量为a[i]-a[i-1] 请联系差分数组理解。 然后,对于志愿者,连s->(t+1),容量为+∞,费用为c。 最后,由于志愿者可以多不能少,连(i+1)->i,容量... 阅读全文
摘要:
题目大意给两个长度小于100000的字符串A和B,求出他们的最长公共连续子串。分析后缀自动机基础题。 根据A串构造后缀自动机,然后用B串进行匹配。假设前匹配到了s[i],l为上次停留的节点,如果l有儿子s[i],len++,l=l->ch[s[i]],否则,沿着失配边走到当前第一个... 阅读全文
摘要:
题目 分析,这道题很显然要找两个相同的字串,也就是两个后缀公共前缀,很自然地可以想到,可以使用后缀数组。 所谓的L-Gap字串,就是两个相同的字串,中间间隔了g个字符,所以,我们枚举这两个字串的长度l,然后看0和l,l和l*2…..分别从这两个位置向前和向后匹配,匹配的长度减去l就... 阅读全文
摘要:
题目大意题目大意:给定有ABC组成的串n个,然后请你生成一个长度为K的串求给定的串在生成串中最多被匹配时的次数分析AC自动机模板题。 构建trie,然后DP. p是当前节点,l是已经构造的串的长度。 没有保存father,可以使用刷表法。 f[p->ch][l]=max(f[p][... 阅读全文
摘要:
题目 分析:由于wt(u,v)=gcd(u,v),所以我们枚举gcd,而且只尝试连接gcd和它的倍数,也就是我们尝试连接(i,j),仅当j是i的倍数,至于于为什么,我也不知道。 用LCT维护最大生成树,每次连接一条边时,必定形成一个环,删除这个环中最小边即可。#include#in... 阅读全文