- 博客(190)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 【杂文】黑科技和杂事
大质数1e14 : 360023843327831偶尔可以用的卡常黑科技(好像codeforces上被封了?有一次反而变慢了)bzoj会CE,只能手动O3#pragma GCC optimize("Ofast,no-stack-protector")#pragma GCC target("avx")...
2019-04-17 21:19:05
245
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 【好题总结】atcoder好题选做
学习ShichengXiao’s的笔记一下是简单的小结和感想ARC 098F找性质,定经过顺序,然后DP注意要把多的贡献的定义搞清楚。因为知道了选点的先后顺序,可以dfs递归其他联通块。然而是不能直接暴力dfs的,因为这不是点分,每次找根不是重心,直接dfs会TLE。还要注意每个联通块的根不是直接和上一层根相连的点。可以倒过来做,每次合并,用并查集维护,更加好写。根据定义,每个联通块...
2019-03-01 10:52:48
1616
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 【知识点小结】关于图论的性质和技巧
图的计数技巧对度数根号n分治统计三元环个数:O(m* sqrt(m))只在标号最大的点处统计,注意三元组必须严格有序,否则会算重!把三元环分成两类:最大点为大点,直接枚举这个大点和任意一条边最大点为小点x,枚举该点x的出边,标记所有点。如果出边e[i].to为大点,则枚举x的另一出边,否则枚举e[i].to的出边例题ull solve4(){ //三元环 ull res = 0;...
2019-02-13 21:08:00
702
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 【学习小结】反演,容斥,组合计数
推数学式子的时候不仅要从组合意义上把式子的意义完完全全理解,还要从实际问题的边界条件出发检验式子的正确性!所有组合计数题一定要把式子一遍推正确,因为根本没法再调试找到错误,太浪费时间了!关于反演的本质:变换和逆变换:f=A∗g,g=B∗f且AB=I(A,B互为逆矩阵) f = A * g , g = B * f 且 AB = I (A,B互为逆矩阵)f=A∗g,g=B∗f且AB=I(A,B互为...
2019-01-28 12:43:18
434
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 近期学习总结:数学,计数,多项式
转载大佬的总结,顺便写一些心得,便于以后经常复习(大佬写得太详尽,我就不写了 )附上一个大佬的总结zjp-shadow关于数学和计数1. 生成函数,计数关于DAG计数 from yyb大体思路是推式子,然后化成相应生成函数的形式,用生成函数直接卷积,再求对应项系数注意推式子的时候要注意边界下标,如果常数项在卷积的时候没有是要补上的指数型生成函数表示排列,用于区分物品或者带标号的计数...
2019-01-27 11:30:41
464
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 跟随大佬刷题
大佬博客[https://wiki.icpc.camp/nightfall/Front Page][https://www.cnblogs.com/clrs97/ claris]跟随大佬刷题[http://www.perfectpan.org/archives/1708][http://blog.miskcoo.com/]
2018-11-06 21:51:33
223
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 代码中经常犯的错误
一、多组数据1. 清空到n + 1,要用边界外的值时,直接memset或者for的时候注意多for一点2. 清空数组直接全部清掉。不要吝惜一点复杂度。(全清无脑)3.4.二、 提交错误1. 记得去文件操作2. 数据范围看清,个别数组没有开够三、 stl使用1. set等end没有存值,begin有值。set.erase左闭右开2.四、 代码sb错误1. 不注意,变量sb打错...
2018-10-13 15:20:10
501
原创 【题解】CCPC-Final 2019 C - Mr. Panda and Typewriter
题目题意给一个打字机,有三种操作:打一个字符花费X的时间复制一段已经打过的子串到剪贴板,花费Y的时间粘贴剪贴板内容到串末尾,剪贴板内容不变,花费Z的时间求打出给定串最短的用时要求复杂度 O(n2)O(n^2)O(n2)题解很容易想到DP,在观察一下这个状态是n2n^2n2的:f[i][j]:表示已经输入了i,当前剪贴板是当前串长度为j的后缀,j=0表示剪贴板为空f[i][j...
2020-02-14 10:45:53
573
原创 【题解】Codeforces Round #569 (Div. 1) - 1179D. Fedor Runs for President
链接题意树上加一条边,使简单路径数量最多题解加一条边以后,会生成一个环。环上挂着的子树内部仅有一条路径,子树之间就有两条路径。所以要最小化的式子:∑i为环上点szi∗(szi−1)/2\sum_{i为环上点} sz_i*(sz_i - 1) / 2∑i为环上点szi∗(szi−1)/2然后就考虑树形DP,f[x]表示x向父亲延伸出的路径在最终的环上,在子树中上式的最小值f[x] ...
2020-02-12 15:21:22
246
1
原创 【算法笔记】AC自动机+可持久化线段树解决大字符集的问题
问题:这里的trie树和普通的不一样,因为串长最多有O(n^2),而不是以前的O(n)。姑且把它叫做广义Trie树这道题目显然是裸的AC自动机,然而字符集很大。这里不能直接map,用一般的均摊AC自动机(求fail的时候用while跳)。这样复杂度错误的要用可持久化线段树维护trans数组下面的代码只是一个思路。以前写这道题的代码找不到了,,,void build(){ hh...
2020-02-08 14:53:08
620
原创 【题解】codeforces 1209 - problem G2. Into Blocks (hard version)
链接做法感谢 @newbiegcz 的指导做法和题解是一样的,然而英文太烂没有看懂。看了cz_xuyixuan的才看懂。后面维护方法和他略有不同要找分界点:分段后,每段包含其中的所有颜色的所有出现位置首先:一个颜色只考虑其两端[Li,Ri][L_i,R_i][Li,Ri],分界点不能在这个区间中间。每个颜色会删去在[Li,Ri)[L_i,R_i)[Li,Ri)的分界点,剩下的就...
2020-02-08 12:27:24
458
原创 【题解】CCPC-final 2019 Problem B - Infimum of Paths
题目链接题意求有向图0道1的字典序最小路径(注意,这里转化成小数值,所以和路径长度毫无关系,末尾可以接无数个0)观察:肯定会有无限循环的情况,但是只会在一个最优的环上走这道题首先要做两个事情删除不能到1的点把1加上0的自环,这样可以把无限和有限放在一起处理有三种方法。其中两种是题解的方法1正着走,贪心的思想,每次走最优的路径。更新合法的点集(注意这里需要去重,否则会指...
2020-02-06 12:35:40
797
原创 【题解】codeforces 1236 - D. Alice and the Doll
题目链接这道题思路很简单,但是要把代码写得简洁,清晰,却不容易!题解直接模拟整个过程。走的时候记录走过的格子,最后检查总数是否等于总格子数-障碍数模拟时用set加速查找过程然而,本题有四个方向,我一开始就习惯性的四个方向分开讨论,于是写了100多行。调起来比较麻烦最简单的写法是旋转矩阵(只要坐标对应旋转,相对位置是不变的,所以矩形内部的任何信息都没有发生变化)然后就只考虑处理向右的...
2020-02-05 11:47:39
187
原创 【题解】2019-2020 ICPC, Asia Jakarta Regional Contest - D. Find String in a Grid
D. Find String in a Grid这是一道好题!方法1:首先考虑如何用后缀数组求一堆串在单个串中的出现次数加分隔符建后缀数组。然后对每个串,在rk数组上求合法区间(即在height数组上用ST表二分)然后计数区间中有多少位置合法这里可以直接把上述方法的思想迁移过来首先枚举分段点,因为我们能做的都是单个串,不能拐弯那我们现在就是要前面的用横着的串匹配,后面的用竖着...
2020-02-03 18:51:48
271
原创 【题解】codeforces 843D - Dynamic Shortest Path 最短路
题解学到了跑最短路的新姿势:当最短路<=n时,我们可以分层dij,这样总复杂度是O(n + m)的。我们从距离为0-n开始更新,这样就不用堆维护了,思路很好想。所以以后不止边权为1可以bfs求最短路。只要保证最短路比较小,就可以线性求了。这种思路很常见。比如弦图求完美消除序列的时候用链表维护。还有只有+1,-1的修改的数据结构注意这道题每次修改c条边,最短路变化=min(c,n)。...
2020-02-02 14:57:32
221
原创 【学习小结】概率、期望好题
1. Hello 2018 F. Strongly Connected Tournament题意n 个人比赛,标号小的赢标号大的概率为p每轮两两比赛,不在强连通分量中的人决出排名,在强连通分量中的继续重复此步骤问期望比赛场数n<=2000n <= 2000n<=2000题解思路:答案只与人数有关,与标号无关。dp时推式子,每次计算最后一个联通块...
2020-02-02 14:56:32
145
原创 【算法学习】拟阵交
详见2018集训队论文《浅谈拟阵的一些拓展及其应用》我仅仅是读了粗略的读了论文(跳过了若干证明),感性的理解了拟阵和拟阵交然后写了两道模板题。可能有很多疏漏的地方,请各位大佬指正。拟阵的定义 wiki这里只有摘要M=(S,I),IM = (S,I) , IM=(S,I),I是独立集的集合满足遗传性:I的一切子集也是独立集交换性:A,B是独立集,∣A∣<∣B∣|A| <...
2020-02-02 14:55:49
2270
原创 【题解】hdu - 6647 Bracket Sequences on Tree 树hash,换根dp
hdu 6647Bracket Sequences on Tree求一棵树所有可能的括号序方案数(从不同根dfs)固定根的话,当前点xxx的括号序方案数:设儿子的子树有k类,每类有cic_ici个,总共tot个,那么方案数f[x]=(totc1,c2,...,ck)∗∏i=1kf[soni]f[x] = \binom{tot}{c_1,c_2,...,c_k} * \prod_{i =...
2019-10-17 18:32:45
322
原创 【题解】2015 - ICPC - Shenyang L - Number Link
题意http://acm.hdu.edu.cn/showproblem.php?pid=5520网格图,相邻格子有边权有格子上有数字,有的为空要将有数字的格子奇偶配对连接起来,路径不能相交。没有格子的格子需要被环或者路径覆盖求最小代价题解费用流把每个点拆成出、入点,空白点入点向汇点连边,源点连向出点奇数只有源点连向出点,偶数只有入点连向汇点然后按照网格图的相邻边建立出到入的...
2019-10-14 18:57:11
180
原创 【题解】2015 - ICPC - shenyang E - Efficient Tree(hdu 5513)
题意 http://acm.hdu.edu.cn/showproblem.php?pid=5513n*m的网格,横向,纵向有带权边 , m <= 7 , n <= 800求最小生成树的权值和权值定义为 τ(T)=∏uLRdeg(u)\tau(T)=\prod_u LRdeg(u)τ(T)=∏uLRdeg(u)题解轮廓线dp,最小表示法记录连通性,状态最多493个把生...
2019-10-14 14:48:30
211
原创 【题解】Petrozavodsk Summer-2019. Grand Prix of Warsaw U
C题意n * n的网格,所有数不同除最大值之外,8联通一定有一个数大于它交互,可以问3 * n + 210次某个格子的值,求最大值位置n <= 2000题解:考虑将矩阵划分成两部分。如果中间画一条线,并求出轮廓上的最大值位置,及最大值附近的8个点的值那么,要么这个最大值是全局最大值,要么这8个值中最大的那个位于的区域一定是全局最大值所在的区域考虑反证:因为这个区域的...
2019-08-29 09:53:07
359
原创 【题解】codeforces Forethought Future Cup - Elimination Round - H
problemsolution1DP所求5角星等价于找5个点的凸包数量把所有边按照极角排序,依次枚举边转移这样就只需要记录第一个点和当前点,不需要记录最后一条边,凸包一定合法(因为没有三点共线的情况,否则要特殊处理共线情况)#include<bits/stdc++.h>using namespace std;typedef long long ll;const ...
2019-08-13 20:07:30
142
转载 【题解】Codeforces Round #572 (Div. 1)
VP的这场。但是做得很崩溃。B,C,D都没有想出来B题没有注意到所有数不相同的条件,根本没有想到乘一下就可以化简式子了C题原来是一个“大暴力”、推复杂度的时候还是应该仔细一点D题的idea还是很精巧。进位只会是排序后连续的一段后缀产生。瞬间把状态压到O(n * 62)用基数排序E题有空再做#include<bits/stdc++.h>using namespace std...
2019-08-07 11:15:00
173
原创 【题解】Codeforces Round #573 (Div. 1) E. Tokitsukaze and Explosion
题目其实官方题解已经非常清晰了。主要是记录一下自己犯的错误。最近要好好搞搞计算几何!直接用角度区间判,并且还不用eps。可能1e5的坐标,acos,atan2之类的精读还行?扩展成2 * n个时一定要保证右端点最大 - 最小 <= 2 * pi , 因为后面贪心是对右端点做得,所以不用考虑左端点。这样可以保证扩展后右端点还是递增的!3. 这个倍增的思路还是挺常见的。直接贪心做...
2019-08-04 20:57:46
189
原创 【题解】与多米诺有关的插头DP
hdu5731【题意】给你一个nm的棋盘,我们用12或2*1(即横着放或竖着放)的骨牌去填充这个棋盘。问你有多少种填法,使得这个棋盘——任意相邻两行或两列之间都必须要有一个骨牌横跨。也就是使得这个棋盘为稳定的。题解from phile的空间先求出不考虑分割线的n*m棋盘的覆盖方案数记为f[n][m]然后枚举列分割线的状态(状压),计算此时不存在行分割线的方案数求出这个我们...
2019-06-05 15:20:04
185
原创 【学习总结】DP优化:决策单调性 ,四边形不等式,convex hull trick及其应用
决策单调性普通单调性四边形不等式p[l][r−1]<=p[l][r]<=p[l+1][r] p[l][r- 1] <= p[l][r] <= p[l + 1][r] p[l][r−1]<=p[l][r]<=p[l+1][r]注意事项决策单调性要把“决策”定义清楚!如果没有进行决策(沿用上一层决策),或者当前状态不合法一定...
2019-05-30 19:42:01
480
原创 【学习小结】线性基
menci的讲解发现了线性基的一些性质和用法线性基合并直接把另一个暴力插入。可以判一下如果满了就不插入,剪枝很有作用一定要满足从高位到低位贪心struct Data{ int a[32]; bool flag; Data(){ memset(a,0,sizeof(a)); flag = 0; } Data operator + (Data z){ Data res =...
2019-05-10 22:07:50
152
转载 常系数齐次线性递推优化矩阵快速幂
from DZYO这个方法只需要能够利用性质快速求出特征方程就可以优化。感觉比较通用。比如转移矩阵是下三角,也是可以优化的
2019-05-10 16:37:46
166
原创 【题解】ICPC焦作2018
% wxhG和L好像在其他的博客,我分成专题的例题了。K - Counting Failures on a Trie比较经典的题目就是问一个子串被拆分后trie的几个前缀匹配注意这个trie只表示n个不同子串,每个节点表示一个,可以hash表存下来然后预处理每个位置的匹配长度查询用一个倍增维护注意把倍增定义清楚:我是定义失配2 i 到的位置。这个定义下直接合并没有问题。边界的...
2019-05-07 19:46:17
756
原创 【学习小结】回文串相关知识
回文自动机(回文树)回文树的性质和构建yyb功能求串S前缀0~i内本质不同回文串的个数求串S内每一个本质不同回文串出现的次数求串S内回文串的个数(其实就是1和2结合起来)求以下标i结尾的回文串的个数和AC自动机相似回文树每个节点都代表一个回文子串,其fail指向最长回文后缀。并且该后缀也是一个border要知道一个节点(一个位置)结尾的所有回文串,只需要跳完fail但是统...
2019-05-06 20:15:44
374
2
原创 【训练小结】Petrozavodsk Summer-2014. Moscow SU SG Contest
tracD-最小回文划分10个串,问最小回文划分,只要任何一个串是回文即可和一个串几乎相同,每个串分别维护以i结尾的回文串集合#include<bits/stdc++.h>using namespace std;#define rep(i,l,r) for(register int i = l ; i <= r ; i++)#define repd(i,r...
2019-05-06 17:30:15
544
原创 【训练小结】NCPC 2017
trac题解F - Fractal Tree题解:从上往下二分可以找到每个点的位置,记录二分路径上所在的层数和在原树中的位置最后求距离的时候,发现路径的lcp是大家的公共部分,删去即可,然后各自的第一个点在原树上求lca,剩下的把深度加起来即可技巧:超过inf的点数,用-inf代替,判负数可知总结:这题要深入的理解lca的本质,即跳到一个相同的祖先之后一定完全相同。并且需要想...
2019-04-27 10:16:12
283
原创 【题解】UOJ #422. 【集训队作业2018】小Z的礼物
题面题解min-max 容斥 : min-max容斥介绍或者看我的,虽然非常不详细转化成求一个集合第一个被选的期望因为覆盖的方案数只有2 * n * m - n - m那么就想把覆盖方案数相同的方案放在一起DP轮廓线DP,f[S][k]表示轮廓线状态为S,覆盖方案为k的方案数。注意这个DP转移的时候要带上min-max容斥的正负号。知道k以后,期望就是:(2 * n * m - ...
2019-04-27 10:06:07
332
原创 【题解】XVIII Open Cup named after E.V. Pankratiev. Grand Prix of Peterhof B 插头DP
Problem B. Domino Colorings题意n <= 6 , m <= 300 , 的网格,用长度为2的砖头(恰好1黑1白)。问能够铺出的不同颜色方案数注意不同铺法但是颜色相同算一种题解对颜色记录插头以下from claris若已经知道了每个格子的颜色,那么可以DP判断是否能由某种骨牌铺成,设dp[S]表示轮廓线上n个点匹配状态为S是否可行即可。现在...
2019-04-25 11:16:27
429
转载 【学习小结】FFT、NTT模板和原理
FFT、NTT原理from zhouzhendong很好的总结from coco_T模板namespace fft { int base = 1;poly rev = {0, 1};vector<Complex> roots = {Complex(1,0),Complex(1,0)};void ensure_base(int nbase) { //所有dft需要的预...
2019-04-23 13:04:43
511
原创 【题解】LOJ #6183. 看无可看 生成函数 + 分治FFT
题解推出f的通项:fn=a×3n−b×(−1)nf_n=a\times 3^n-b\times (-1)^nfn=a×3n−b×(−1)n最后我们要求:∑s′⊆s,∣s∣=k∏x∈s′wx\sum_{s'\subseteq s,|s|=k} \prod_{x\in s'} w^xs′⊆s,∣s∣=k∑x∈s′∏wx这个可以看成生成函数,分治FTT...
2019-04-23 12:34:24
366
原创 【学习总结】生成函数题目,多项式模板
学习资料:王乐平、策爷冬令营讲义。多项式技巧牛顿迭代(泰勒展开)这是一篇非常好的博客。特别是把所有多项式操作都用泰勒展开推导,以后就不用再死记,也不用担心推错了!from yyb复合逆拉格朗日反演注意当f(x)本身不存在逆元的时候,可以求f(x) / x的逆元否则(x / f(x))n 的第n - 1项为0例题直接推生成函数【BZOJ3625】小朋友和二叉树 from ...
2019-04-22 11:37:42
746
原创 【训练小结】Petrozavodsk Summer-2014. Warsaw U Contest
trac题解D题意:给你一个连通的无向图,有偶数条边。n,m≤2e5, 现在要求你给每一对奇度点找到一条路径,使得这些路径不共用边,而且自身也是简单路。每条路径长度为偶数。题解:在dfs树上把相邻边两两配对。因为一定有偶数条边且图联通,一定存在这样的匹配。这样匹配后有一个非常好的性质:所有度数为偶数的点一定作为偶数次端点,而度数为奇数的点作为奇数次。即按照匹配边连边,原...
2019-04-20 15:35:37
390
原创 【知识小结】分块和莫队技巧
题目P4119 [Ynoi2018]未来日记题意1.把区间[l,r]内所有x变成y2.查询区间[l,r]内k小值值域分块,经典的求k小套路:维护前缀和,一块一块得跳这题的关键是修改,要维护值被修改成什么的映射,这个一定要想清楚!我一直没有想清楚,写错了很多地方。对拍了很久才过。更多题解 orz small fatcode洛谷测动态实际空间,良心!...
2019-04-17 15:05:33
365
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人