摘要:
题解:按照点的Dfs序走 用Splay维护Dfs序即可 插入时找前驱和后继,插在中间 阅读全文
摘要:
题解:对询问点建立虚树 然后在虚树上Dp 每个点父边边权为这个点到根的边权最小值 一开始学了假的虚树 一开始竟然没想到父边边权可以这样赋 阅读全文
摘要:
题解:建立AC自动机,然后Dp 考虑长度与n相等时 f[i][j][2]表示第i位匹配到AC自动机第j号节点,是否顶着上界的方案数 转移枚举这一位填什么 注意,如果当前节点沿Fail树能走到单词节点就不能转移到他 长度<lenn不用考虑顶上界 问题:不明白最后统计答案的方式 阅读全文
摘要:
题解:发现问题的本质,即堆的个数 动态规划一下 f[i]表示前i个元素形成的堆的个数 第i个元素为根,左右子树又是两个堆 注意:逆元存在条件 阅读全文
摘要:
题解: 长度定为3 线段树维护区间hash值 从左向右处理,依次在数轴上插入处理的元素; 如果当前数轴不对称,则缺失的那个元素一定在后面出现 阅读全文
摘要:
题解:树链剖分一下 对线段树每个节点维护双堆,支持插入删除 对于每一条请求,给这个请求没经过的点加入这个值,共logn个区间 查询就是线段树上的单点查询 阅读全文
摘要:
题解: 解法1: 树链剖分一下,对每条链建立一颗Splay 以宗教为第一关键字,深度为第二关键字建立 查询相当于Splay的一个区间 修改相当于删除一个节点,加入一个节点 O(nlog^2n) O(n); 解法2: 树链剖分一下,对每条链建立maxc棵权值线段树,动态开点 O(nlog^2n) O( 阅读全文
摘要:
题解:容斥原理,总的三角形减去不符合题意的三角形 不符合题意的三角形即三点共线 设一个端点在(0,0),枚举另一个端点,用gcd算出线段中间夹着的点 因为相同的线段可以同时计算 所以复杂度O(n^2log) 容斥错了WA了几发QWQ 阅读全文
摘要:
题解:整体二分 以时间为关键字进行整体二分 用线段树维护区间和 Woc这题居然爆int,以后注意爆int的可能 阅读全文
摘要:
题解:Dp+线段树维护所有决策 f[i][j]表示第j个基站建在第i个位置,i之前的村庄与建基站的总费用的最小值 以j为阶段 枚举i,维护所有决策f[x][j-1]; 当一个村庄q不能被i覆盖了,那么在1~p之间建立基站的决策费用要+c p为q左边第一个不能覆盖q的村庄 复杂度O( nklogn); 阅读全文
摘要:
题解:burnside引理 DP出不动点的数目,用burnside引理算等价类 问题:不明白burnside引理的原理 阅读全文
摘要:
题解:a%b=a-[a/b]*b; ans=n*k-sigma([k/i]*i]); [k/i]有sqrt(k)种取值 last=k/(k/last); 阅读全文
摘要:
题解:树上差分就可以了 论看懂题意的重要性 最后-1的时候处理错了,WA了几发 阅读全文
摘要:
题解:对每一位分别考虑贡献 先求前缀和 按照二进制减法分类讨论,求出最终这一位是1还是0 用树状数组维护 注意:树状数组对0这个位置单独考虑 阅读全文
摘要:
题解:DP一下 每一行为阶段 发现只有3种本质不同的列,即已经放了0,1,2三个棋子的列 阅读全文
摘要:
题解:枚举gcd,算每个gcd对答案的贡献,贡献用到欧拉函数的一个结论 最后用nlogn预处理一下,O(1)出答案 把long long 打成int 竟然没看出来QWQ 阅读全文
摘要:
题解:概率,f[i][j][2]表示到第i天一共申请了j次,第i天的课程是否申请的期望最短路 考场上这题得了0分QWQ 问题:对期望和概率的理解不够深 让保留2位小数我TM用了cout,WA了几发 阅读全文
摘要:
题解:加权并查集或差分约束 一开始并查集竟然打错了QWQ 阅读全文
摘要:
题解:贪心,每次选深度最大的未被覆盖节点,在他的2级祖先处放一个 不会DP做法QWQ 阅读全文
摘要:
题解:运用筛法的思想,%p意义下,F(x)!=0则F(x+p)!=0 多选几个质数把F(x)!=0的筛去就可以了 阅读全文