摘要: 注意:以下所有说明均以帮助理解模板为目的,不保证正确性。 一些坑点:fft的范围,数组是否清空,模x的多少次方(同一个式子里一定要都是模同一个$x^n$意义下的多项式) 多项式求逆 已知$A(x)$,求满足$A(x)B(x)=1\ (mod\ x^n)$的B(以下为了方便假设n是2的幂) 考虑倍增,阅读全文
posted @ 2019-07-10 09:50 Ressed 阅读(26) 评论(0) 编辑
摘要: 注意:以下所有说明均以帮助理解模板为目的,不保证正确性。 最大流 dinic 考虑每次找一条S到T的不满流的路径并进行增广,但需要解决转圈圈的问题 所以首先用bfs给你的网络分层,之后再按照层(每个点只能走到下一层的点)来dfs,尽可能地把流量都占满 当前弧优化:在一次dfs中,每个点已经被访问完的阅读全文
posted @ 2019-07-05 10:08 Ressed 阅读(15) 评论(0) 编辑
摘要: Miller_Rabin 快速($O(slogn)$,s为尝试次数)地测试一个数是否是质数 首先有费马小定理$a^{p-1}=1\ (mod\ p)$当p为质数时成立,所以可以随机选择a来以这个式子作为一定的判断依据,但并不是所有合数都不满足这个式子,甚至存在合数对所有的a都不满足这个式子 然后有二阅读全文
posted @ 2019-06-24 13:33 Ressed 阅读(23) 评论(0) 编辑
摘要: 做法 考虑用射线(一个点和一个向量)表示它左侧的半平面 那么我们可以先按与x轴正半轴夹角(可用atan2(y,x)实现)排序,然后再用双端队列维护当前在交中的射线即可 之所以要用双端队列,是因为新插入一个半平面时队首和队尾都有可能被弹出,而且要注意的是,要先弹队尾再弹队首 在最后,还要再用队首的弹一阅读全文
posted @ 2019-06-20 14:15 Ressed 阅读(13) 评论(0) 编辑
摘要: min-max容斥: $$max\{a_i\}=\sum\limits_{S}(-1)^{|s|-1}min\{a_i|a_i \in S\}$$ 关于证明,可以把一个数$a$看作是集合$\{1...a\}$,于是max相当于取并集,min相当于取交集,就变成了普通的容斥 然后这道题就可以dp了 然阅读全文
posted @ 2019-06-07 16:23 Ressed 阅读(13) 评论(0) 编辑
摘要: 就是求连通块的数量,可以维护一个斜着的扫描线,set里只保留在R范围内的点 然而怎么维护连通块呢。。 其实只需要向能够到的最靠左和最靠右的点连边就可以,剩下的点之前就已经连好了阅读全文
posted @ 2019-05-02 17:29 Ressed 阅读(25) 评论(0) 编辑
摘要: 考虑对非障碍的点黑白染色然后做二分图最大匹配,那么有结论,先手必胜当且仅当不是完美匹配,而且可以放的点是那些可以不匹配的点 从非匹配点开始走,后手只能走到匹配点,于是先手就可以走匹配边。由于不能走走过的点,所以现在又变成了一个非匹配点;这样下去直到后手无路可走,所以先手必胜 反观完美匹配的情况,先手阅读全文
posted @ 2019-04-27 15:53 Ressed 阅读(11) 评论(0) 编辑
摘要: 原理 给自动机上的每个点定义两种属性:[min,max]和right集合,这个点表示(长度在[min,max]的、所有出现位置的右端点的集合为right的子串) 然后可以证明,两个节点的right集合要么不相交,要么互相包含 于是,让right直接包含(某个点的right)的点作为它的父亲,可以得到阅读全文
posted @ 2019-04-26 13:48 Ressed 阅读(18) 评论(0) 编辑
摘要: 用途 平衡树(可实现区间翻转) 原理 和treap一样,中序遍历表示权值的顺序,并且每个点有一个随机的附加值,形成一个堆来保证复杂度 但是不旋转,所有操作通过split和merge实现 分为两种split:按权值和按排名 代码 luogu3369 普通平衡树阅读全文
posted @ 2019-04-13 09:33 Ressed 阅读(32) 评论(0) 编辑
摘要: 考虑颜色比较少的时候,第一问可以直接斯坦纳树 第二问考虑二分,每次把每格的权值给成1000+[a[i]>m],就是在个数最少的基础上尽量选小于等于m的 然而颜色太多不能直接做,但可以把每种颜色映射到5以内,这样的话,做一次的正确率就是作为答案的那5种颜色分别被映射到了1~5的概率,就是$\frac{阅读全文
posted @ 2019-03-28 11:00 Ressed 阅读(35) 评论(0) 编辑