上一页 1 2 3 4 5 6 7 8 9 ··· 13 下一页
摘要: 没想那么多,直接上了$Matrix-Tree$ 上网一搜,发现有结论,最终结果是树当且仅当有一个五边形被删了两条边且一条在中心环上,剩下的五边形各删一条边,所以是$n*4*5^{n-1}$ 好有道理,本来说T了的话打表呢,结果过了,好尴尬。 1 #include<cstdio> 2 #include 阅读全文
posted @ 2018-01-03 21:14 Ren_Ivan 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 变形的$Martix-Tree$定理 发现我们要求的是$\prod_{i \in E}{p_{i}} * \prod_{i \notin E}{(1-p_{i})}$ 然后呢? 矩阵树对重边也有效对吧。考虑带权图,发现建出来的矩阵的任何一个$n-1$阶主子式的行列式的值都是其所有生成树的边权之积的和 阅读全文
posted @ 2018-01-03 20:54 Ren_Ivan 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 先做一遍kruskal,然后发现不同的方案只可能是相同权值的不同的边干了相同的事 题目又保证了相同权值的边数很少,直接状压即可 1 #include <cstdio> 2 #include <cstring> 3 #include <iostream> 4 #include <algorithm> 阅读全文
posted @ 2018-01-03 17:01 Ren_Ivan 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 回文自动机上dp f[x]表示形成x代表的回文串所需的最小步数, 若len[x]为奇数,f[x]=len[x],因为即使有更优的,也是直接添加,没有复制操作,那样就不用从x转移了。 若len[x]为偶数,f[x]=min(f[fa[x]]+1,len[x]/2-len[fro[x]]+f[fro[x 阅读全文
posted @ 2018-01-03 16:29 Ren_Ivan 阅读(182) 评论(0) 推荐(0) 编辑
摘要: LCT维护子树size 具体维护子树信息请看我的少女 1 #include<cstdio> 2 #include<iostream> 3 #include<algorithm> 4 #include<cmath> 5 #include<cstring> 6 #define N 100005 7 us 阅读全文
posted @ 2018-01-03 11:47 Ren_Ivan 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 好屎的一道题啊 倒序加边kruscal,LCT维护maxn 然而我在bzoj上并卡不过去 操 放上我用尽心思卡评测的代码 1 #pragma optimize GCC ("O3") 2 #include<cstdio> 3 #include<algorithm> 4 #include<map> 5 阅读全文
posted @ 2018-01-03 11:44 Ren_Ivan 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 发现每个可行的答案是两个短的回文串拼成的一个长的回文串所以短串一定是长串的某个后缀建出来回文自动机后,在$fail$树$dfs$即可 1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<algorithm> 5 阅读全文
posted @ 2017-12-26 20:03 Ren_Ivan 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 群论第一题。 发现这题也是有颜色个数限制的,所以不能用$Polya$,只能用$Burnside$ $L={\frac{1}{|G|}}{\sum_{i=1}^{m}{D(a_{i})}}$ 先$dfs$出每个循环节长度,每个循环节颜色需要一样,$dp$就好了。 1 #include<cstdio> 阅读全文
posted @ 2017-12-25 20:06 Ren_Ivan 阅读(179) 评论(1) 推荐(0) 编辑
摘要: 发现最优解一定是拿一部分,使得剩下的没有任何一个子集异或和为0,拿的只剩一个肯定可以,所以一定有解,线性基乱搞。 那么考虑如何满足拿的最少,线性基按权值排序就好了。感性理解十分清晰 理性分析的话,可以证明这是一个拟阵$M={S,I}$ 当$S$的某个子集$A$满足$A$的任何子集异或和都不为0时,$ 阅读全文
posted @ 2017-12-23 21:32 Ren_Ivan 阅读(226) 评论(0) 推荐(0) 编辑
摘要: LCT简单题,但是标记有点恶心 就当复习SPLAY了吧。 1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<algorithm> 5 #include<cmath> 6 #define N 100050 7 阅读全文
posted @ 2017-12-20 21:13 Ren_Ivan 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 12.18 飞机上睡了俩小时。 到了CDQZ,发现好的NB的dalao联赛都挂了。 哎。见到了GYK,还认识了几个新的好基友 12.19 上午考试 T1:高精度矩阵乘打表A了 T2:想到了BSGS,不会打了,暴力20 T3:暴力40; 100+20+40=160 rank3 T3最后打了更暴力的对拍 阅读全文
posted @ 2017-12-19 21:34 Ren_Ivan 阅读(274) 评论(1) 推荐(0) 编辑
摘要: 昨晚的模拟赛很好啊 T1:Super GCD 1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<algorithm> 5 #include<cmath> 6 using namespace std; 7 st 阅读全文
posted @ 2017-11-07 12:56 Ren_Ivan 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 又是差分,然后利用标记求和求某对点lca的dep 比如求a,b lca的dep,则把根到a的所有点标记,再在根到b的路径上求和, 于是就可以树剖了。前缀和差分一下就好了。 想打主席树,没有实现, 在线主席树具体可见[Troywar]。 1 #include<cstdio> 2 #include<cs 阅读全文
posted @ 2017-11-06 14:08 Ren_Ivan 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 这题很劲啊 首先令b[i]=a[i]^a[i+1]; 这样对a进行的区间操作即为对b的单点修改 目的变成了将b进行一些长度两端点的反转,使其全为0 考虑一个1,一个0,可以看做1移动到了0的位置,两个1呢,则可以看成撞到一起消去了 那么可以bfs处理出每两个1间的最短路,状压dp转移就好了 1 #i 阅读全文
posted @ 2017-11-06 08:54 Ren_Ivan 阅读(199) 评论(1) 推荐(0) 编辑
摘要: 化简式子 $M>=m+ans*(r-l+k)$ 发现$M,m$确定时,总区间长度越小越好,于是假定右端点为最小值$M+ans*l>=m+ans*r+ans*k$, 右面都确定了,但最大值仍然有两种情况,一是最大值就在要求的区间内,二是在要求的区间右侧, 对于第一种情况,直接把每个点的val扔进单调队 阅读全文
posted @ 2017-11-03 15:18 Ren_Ivan 阅读(157) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 13 下一页