摘要:
https://www.luogu.org/problemnew/show/P2398 $原式=\sum_{k=1}^n(k\sum_{i=1}^n\sum_{j=1}^n[(i,j)=k])$ 方法1: 发现暴力枚举k,就变成这道模板题 复杂度O(nlogn) 1 #pragma GCC opti 阅读全文
摘要:
莫比乌斯函数定义: $$\mu(d)=\begin{cases}1 &\text{d = 1}\\(-1)^r &\text{$d=p_1p_2...p_r,其中p_i为不同的素数$}\\0 &\text{else}\end{cases}$$ 性质: (1)$\sum_{d|n}\mu(d)=[n= 阅读全文
摘要:
https://loj.ac/problem/125 $原式=2\sum_{i=1}^n(i^2*{\lfloor}{\frac{n}{i}}{\rfloor})+3\sum_{i=1}^n(i*{\lfloor}{\frac{n}{i}}{\rfloor})+5\sum_{i=1}^n({\lfl 阅读全文
摘要:
题面: 给你n个整数,找出一对数$a_i$,$a_j$使得$a_i$%$a_j$最大,($a_i$>=$a_j$) http://210.33.19.103/problem/3397 http://codeforces.com/problemset/problem/484/B https://vju 阅读全文
摘要:
虽然对这道题没有什么帮助,但是还是记一下:约数个数也是可以线性筛的 http://www.cnblogs.com/xzz_233/p/8365414.html 测正确性题目:https://www.luogu.org/problemnew/show/P1403 这个好像叫d函数看$d=(a_1+1) 阅读全文
摘要:
简单来讲,就是要求$\sum_{i=1}^n(\sum_{d|i}d)$ $$\sum_{i=1}^n(\sum_{d|i}d)=\sum_{i=1}^n(\sum_{j=1}^n{[j|i]*j})=\sum_{j=1}^n(\sum_{i=1}^n{[j|i]*j})=\sum_{j=1}^n( 阅读全文
摘要:
loj124 除数函数求和 1 https://loj.ac/problem/124 $\sum_{i=1}^n(\sum_{d|i}d^k)=\sum_{i=1}^n(i^k*{\lfloor}{\frac{n}{i}}{\rfloor})$ 不能直接数论分块了,但是一看数据范围,可以线性筛啊 怎 阅读全文
摘要:
http://codeforces.com/problemset/problem/919/D 就是先判环,如果有环就-1,否则对每个字母分开跑一下dp 错误记录: 1.有向图判环,自环一定要特判!(不能直接用强连通) 2.思考的时候很容易跑偏,去想把各个字母合在一起dp,不知道为什么? 阅读全文
摘要:
https://vjudge.net/problem/CodeChef-TAPAIR 合法的删除方法: 第一种:桥边与其余任意边(1)桥*(桥-1)/2(两条桥边)(2)桥*(m-桥)(桥边+其他边)第二种:两条非桥边;一定在同一个边双内对每一个边双求dfs树(1)两条树边(定义覆盖:反向边(a,b 阅读全文
摘要:
https://vjudge.net/problem/CodeForces-652E 边双啊,就是点双那个tarjan里面,如果low[v]==dfn[v](等同于low[v]>dfn[u]),表示v及其子节点只能访问到v本身,不能访问到v的祖先,那么边(u,v)是一条桥 然后再dfs一遍,不经过桥 阅读全文
摘要:
https://vjudge.net/problem/HDU-3686 点双啊,就是在求割顶的时候,另外用一个栈来存一些边 在遍历u点出发的边时,遇到树边或反向边(u,v)就把此边加入栈(可能要记一下边的编号)(但是,如果(u,v)是反过来看的反向边(此时dfn[v]>=dfn[u];实际反向边应该 阅读全文
摘要:
查询,就相当于先删去这条边,然后查询边的两个端点所在连通块大小,乘起来得到答案,然后再把边加回去 可以用线段树分治做 阅读全文