Megumin's Training (补题当然是由队友补喽)

2014-2015 ACM-ICPC Pacific Northwest Regional Contest (Div. 1)

B 4

C 最小割 以每个方块为点,S与最外围所有点连边,其中在顶点处的点连3边,不在顶点且在棱上的点连2边,其他点连1边。好点与周围六个方向点连1边,坏点与T连inf边,求最小割即可

WQF代码

F 矩阵快速幂+状压 考虑递推的时候第i列会影响到第i+2列,所以我们将用第i,i+1列推出第i+1,i+2的状态转移矩阵做矩阵幂,两列最大的开销也就(2^8*2^8),注意这题模数的值,除此之外这题,我本地RE好久,第一个是矩阵要在全局声明,第二个是讲矩阵里面的数组改成int,运算的时候乘法需要加个long long,这样矩阵的大小本地可以开到(300*300)左右,第二点查了半天一直不知道为什么会RE

WQF代码

G 博弈 观察得到影响最后结果的有两部分,一部分是包括1的区间[l,r],还有一部分是与1的区间隔开的剩余的数(即l-1和r+1的数被选掉了),前一部分可以不断记忆化搜索下去,后一部分随便怎么选都可以,搜索过程遵循前继和后继规则就行

WQF代码

I 线段树+dfs序 题目就是给两种操作,一个是询问子树的最大值与最小值之差,另一个是讲子树的权值一起增加,把点按照dfs序hash线段树上,然后就是线段树的操作了

WQF代码

J 9

K dfs 39

2014-2015 ACM-ICPC Southeastern European Regional Programming Contest (SEERC 2014)

B 5 后缀数组

C 7 http://paste.ubuntu.com/25289843/

F 数据结构 先来小小的总结一下,线段树可以搞区间和,最值,但是对于中位数,第k大,众数,线段树表示无能为力,当然后者有好多其他更复杂的方法去解,但是也可以暴力一点分块,这题是求中位数,当然类似像第k大一样先二分中位数,然后累加每个块有多少个数小于等于二分的值(即再次二分),然后再判断,这题比较特殊就是:每次都是区间+1,说明每次中位数的值要么不变要么+1,所以省去第一个二分枚举中位数的操作,直接分块(块内排序),复杂度为(O(nsqrt{n}*logn))

WQF的代码

G 2 DP http://paste.ubuntu.com/25289869/

I 0 http://paste.ubuntu.com/25289871/

2015-2016 ACM-ICPC, Central Europe Regional Contest (CERC 15)

题解: http://cerc.hsin.hr/2015/tasks/cerc2015_presentation.pdf

C 1 very hard 线段树 + 扫描线 + 差分

E 9 medium 图论

F 常数部分与其余部分分开计算。可以发现,其余部分是很好计算的,关键是常数部分。考虑每个格子对最后结果的贡献,我们可以得到一个和式,这个和式是可以通过FFT或者NTT进行计算的,但这傻逼题目给了一个辣鸡素数,导致不方便用NTT进行计算,便考虑其他方法。事实上,这个式子是可以递推的求解的,用到了一个组合恒等式。然后递推求解即可。

Megumin的代码

G 2 hard

I 计算几何,被无限卡常,不过算是有点收获。虽然计算几何模板具有非常强大的功能,但是存在一个问题,速度很慢,因此,对于使用频率高的几个小函数,必须加上inline来提升速度

[Megumin的代码] (代码什么的,当然是不存在的呀)

J 3 hard 最小割树(分治+最小割)

L 1 hard BFS

2017ACM/ICPC广西邀请赛-重现赛(感谢广西大学)

1002 (32/229) 线段树

1003 三元环计数,可以用(m*sqrt{m})的复杂度计算

Megumin的代码

1006 最大生成树 题目要求差点最少的边,并且使得所有点是连通的,可以考虑反面,用所有边值和减去最大生成树的值即可

1009 (2/16)

1010 (89/395) trie+dfs序

1011 (4/49)

1012 (1/5)

原文地址:https://www.cnblogs.com/ACGO/p/7275192.html