题面首先题目给的柿子实际上就是$n$的因子个数$[l,r]$运用前缀和拆成$[1,r]-[1,l-1]$ \sum_{i=1}^n\sum_{d|i}1 = \sum_{d=1}^n\sum_{d|i,i = \sum_{d=1}^n\lfloor\frac nd\rfloor数论分块// luo ...
题解 P5227 [AHOI2013]连通图
题面 算法1:线段树分治对于区间[l,r] 把不涉及的边直接联通,然后对[l,mid],[mid+1,r]进行分治这个过程可以用带撤销并查集做$O(\sum clog\sum clogn)$(并查集复杂度貌似路径优化无法分析???)#include <bits/stdc++.h>usin ...
题解 P4868 Preprefix sum
题面 两个操作1.单点改2.求前缀前缀和 线段树维护前缀和单点加变为后缀加,前缀前缀和变为前缀和#include <bits/stdc++.h>using namespace std;typedef long long ll;ll tag[400010], sum[400010];i ...
题解 P5431 [模板]乘法逆元2
题面 给定$n$个数,$O(n)$求所有数的逆元考虑类似求组合数时预处理阶乘逆元的方法求出前缀累乘然后再倒着求出前缀累乘的逆元注意读入优化 #include <bits/stdc++.h>using namespace std;int n, a[5000010], inv[50000 ...
题解 P3181 [HAOI2016]找相同字符
题面 直接对两个串建广义sam然后分别搞出A,B的right集合大小然后乘起来再求和就可以了 #include <bits/stdc++.h>using namespace std;int buc[800010], a[800010];namespace sam { int s ...
THUSC2019游记
Day-1就是报到前一天(T大把第一场叫做$Day0$???)高铁6,7个小时,路上做了几道题,好像秒切了???,颓了颓放置游戏 宾馆的窗户只有几个小圆孔???,还对着餐厅,莫名一股奇怪的味道,总体还可以 Day0宾馆换了个房间,终于有窗了 上午报道,排前面的一个人牌找不到,THU咕掉了然后试机,三 ...
题解 P3385 [模板]负环
题面 来一篇能过的题解如楼下某大佬所说,spfa的复杂度也是$O(nm)$,所以只要用常数更小的$Bellman-ford$即可。 然而,图不一定联通,因此只要加一个虚拟节点,从该节点向其余每个点连一条单向边,权值任意。显然,原图若存在负环,新图也存在,反之,原图若不存在负环,则新图也不存在。因此直 ...
题解 P4115 Qtree4
题面 Qtree4题意:$n$个点,每个点有一个颜色,黑或白每次查询最大白点间距离带修改$n=10^5,q=2*10^5$ (相信大家边分治,LCT等 $O(nlog^2n)$做法都会了) 但是这里有一个常数巨大的$O(nlogn)$做法 前置芝士1.全局平衡二叉树(详见2007年论文Qtree问题 ...
题解 P1001 A+B Problem
题面 #include <bits/stdc++.h>using namespace std;int main() { int a, b; cin >> a >> b; cout << a + b << endl; return ...