随笔分类 - 题解
题解
    
摘要:首先注意到每种树都是等概率出现的,于是将问题转化成计数求和问题。 f[n]表示所有n个点的树的两两点距离和的总和。 g[n]表示所有n个点的树的所有点到根的距离和的总和。 h[n]表示n个点的树的可能形态数。 转移: f[n]+={[f[i]+(g[i]+h[i]*i)·(n-i)]·h[n-i-1
        阅读全文
                
摘要:https://www.cnblogs.com/Gloid/p/10273902.html 这篇文章已经从头到尾讲的非常清楚了,几乎没有什么需要补充的内容。 首先$O(n\log^2 n)$的做法比较显然,倍增优化建图+最短路即可。 然后利用“每个塌陷最多会被使用一次”的性质,为每个塌陷(边也看作一
        阅读全文
                
摘要:显然f[i][j]表示S匹配到第i个通配符,T匹配到第j个字符,是否可行。 一次一起转移两个通配符之间的所有字符,Hash判断。 稍微有点细节。常数极大卡时过排名倒数,可能是没自然溢出的原因。
        阅读全文
                
摘要:1.向量点积同二维,x1y1+x2y2+x3y3。向量叉积是行列式形式,(y1z2-z1y2,z1x2-x1z2,x1y2-y1x2)。 2.增量构造法: 1)首先定义,一个平面由三个点唯一确定。一个平面是有方向的,它的法向量只有一个方向(即逆时针相邻两向量的叉积的方向)。 2)初始时只有(p1,p
        阅读全文
                
摘要:对于点集$A$,$B$,闵可夫斯基和$C=\{(x1+x2,y1+y2)|(x1,x2)\in A,(y1,y2)\in B\}$。由此可知,对于两个凸包$A$,$B$的闵可夫斯基和$C$满足,$C$中的向量是所有$A$中向量与$B$中向量的和的并集。可以证明,$C$也是一个凸包。现在问题是要求,对
        阅读全文
                
摘要:https://www.cnblogs.com/CQzhangyu/p/7891363.html 不难推到$\sum\limits_{D=1}^{m_1}\sum\limits_{d|D}C_{d-1}^{c-2}\mu(\frac D d)\prod\limits_{i=1}^n\frac {(2
        阅读全文
                
摘要:显然有决策单调性,但由于逆序对不容易计算,考虑分治DP。 solve(k,x,y,l,r)表示当前需要选k段,待更新的位置为[l,r],这些位置的可能决策点区间为[x,y]。暴力计算出(l+r)/2的决策位置s,两边递归下去继续操作。solve(k,x,s,l,mid-1),solve(k,s,y,
        阅读全文
                
摘要:[BZOJ5099][POI2018]Pionek(极角排序+two pointers) 几个不会严谨证明的结论: 1.将所有向量按极角排序,则答案集合一定是连续的一段。 当答案方向确定时,则一个向量会被选入答案集合当且仅当向量在答案方向上的投影一定都是正的 所以,两个选中向量中间隔着一个向量,则必
        阅读全文
                
摘要:如果没有秒杀,就是经典的国王游戏问题,按t/a从小到大排序即可。 考虑删除两个数i<j能给答案减少的贡献:S[i]*T[i]+P[i-1]*A[i]-A[i]+S[j]*T[j]+P[j-1]*A[j]-A[j]-T[i]*A[j] 其中P为T=(D-1)/ATK+1的前缀和,S为A的后缀和。 我们
        阅读全文
                
摘要:考虑l=1,r=n的68分,对S和T建SAM,对T的SAM上的每个节点,计算它能给答案带来多少贡献。 T上节点x代表的本质不同的子串数为mx[x]-mx[fa[x]],然后需要去掉所代表子串与S的最长公共子串的长度。 从1到length(T)扫一遍,SAM基本操作求出每个前缀与S的最长公共子串。 答
        阅读全文
                
摘要:不要以为用上Stirling数就一定离正解更近,FFT都是从DP式本身出发的。 设f[i]为i个积木的所有方案的层数总和,g[i]为i个积木的方案数,则答案为$\frac{f[i]}{g[i]}$ 转移枚举第一层是哪些积木:$$f_n=g_n+\sum_{i=1}^{n}\binom{n}{i}f_
        阅读全文
                
摘要:https://blog.csdn.net/WAautomaton/article/details/85057257 解法一:后缀数组 显然将原数组差分后答案就是所有不相交不相邻重复子串个数+n*(n-1)/2。 答案=重复子串个数-相邻或相交重复子串个数。 前者单调栈直接求解,注意细节,重点在后者
        阅读全文
                
摘要:https://minamoto.blog.luogu.org/solution-p5106 容易想到枚举质因子及其次数计算其贡献,容斥计算$\varphi(p^i)$的次方数。
        阅读全文
                
摘要:首先集合去重不影响答案,然后打表易得连续自然数平方差异或前缀和的规律,于是问题就变为在线维护区间求并同时更新答案,set记录所有区间,每次暴力插入删除即可。由于每个区间至多只会插入删除一次,故均摊复杂度$O(n\log n)$
        阅读全文
                
摘要:允许5%的相对误差,意味着我们可以只输出$\log_{1.05} V$种取值并保证答案合法。并且注意到答案随着区间长度而单增,故取值不同的答案区间是$O(\log_{1.05} V)$的。 于是初始x=0,每次x=max(x+1,x*1.05),再用单调队列$O(n)$找出当前x能更新的区间即可。总
        阅读全文
                
摘要:https://blog.csdn.net/maxwei_wzj/article/details/80789619 感觉主要难在想到通过f,g来求F,G。 代码实现调换了题解中f,g的两维。
        阅读全文
                
摘要:https://blog.csdn.net/Maxwei_wzj/article/details/80714129 n个二项式相乘可以用分治+FFT的方法,使用空间回收可以只开log个数组。
        阅读全文
                
摘要:暴力枚举非树边取值做DP可得75。 注意到每次枚举出一个容斥状态的时候,都要做大量重复操作。 建立虚树,预处理出虚树上两点间的转移系数。也可动态DP解决。 树上倍增、动态DP、虚树DP似乎是这种问题的三种通用解法。 代码不是特别长但极其难写,预处理过程中要考虑各种情况。水平不够只好抄代码。
        阅读全文
                
摘要:MinMax容斥将问题转化为求x到S中任意点的最小时间。 树形DP,直接求概率比较困难,考虑只求系数。最后由于x节点作为树根无父亲,所以求出的第二个系数就是答案。 https://blog.csdn.net/dearbaba_8520/article/details/80556499 $O((n+q
        阅读全文
                
摘要:用一棵Splay按名次维护每个点,其中一个节点对应初始编号连续的一段区间,这样总节点数是$O(m)$的。 对每个编号记录这个点被Splay的那个节点维护,用std::map存储,只记录被修改的点。 每次删除时将一个点分裂成[l,k-1],k,[k+1,r]三个点(特判k=l或k=r),再删除k。 注
        阅读全文
                

 浙公网安备 33010602011771号
浙公网安备 33010602011771号