摘要: 树链剖分 树链剖分可以解决树上路径,子树之类的一系列问题。 下面以[LuoguP3384]为例,讲解关于树链剖分的部分操作。 主要思想 树剖通过一种特殊的枚举方法,将树上的路径转化成连续的几段,通过线段树等操作去维护。 预处理 树链剖分的主要通过两个dfs求出以下需求的值 depth[x]:x的深度 阅读全文
posted @ 2019-02-24 16:09 DavidJing 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 预处理后主席树维护 首先得出最后的答案为 $\sum_{i=l}^{r}{min(right[i],r) i+1}$ $ri[i]$表示i最远的上升序列(即代码中的f[i]) step1 那么首要问题就是如何求出$right[i]$ 考虑当i j 1是上升时使区间i j是上升的 即sum[i 1]^ 阅读全文
posted @ 2019-02-24 12:45 DavidJing 阅读(226) 评论(2) 推荐(1) 编辑
摘要: 1.注意类型定义 long long类型输出必须使用printf("%lld",); int类型输出必须使用printf("%d",); 2.检查输出格式 如是否要换行 空格什么的 有多组数据最好自己出组来验证下 3.不要用骚操作,__int128不能用,变量类型注意不能使用time,tmp等,最好 阅读全文
posted @ 2019-02-19 20:32 DavidJing 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 1.邻接表判重边时对于边连的两端排序判重 2.有时可以枚举第一个状态 3.树上三点的最短距离为depth[a]+depth[b]+depth[c] depth[lca(a,b)] dpeth[lca(b,c)] depth[lca(a,c)] 4.断环可以做树形dp 4高精乘时开fin数组记录 5. 阅读全文
posted @ 2019-02-19 20:31 DavidJing 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 一般标准求 $ax+by=gcd(a,b)$中x,y的整数解 一般使用求 $ax+by=c$的整数解 在线性同余方程 $ax\equiv b(mod m)$的情况下 x的解为$b div gcd(a,m) exgcd(a,m,d,x,y)+t m div gcd(a,m)$ 阅读全文
posted @ 2019-02-17 11:15 DavidJing 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 典型的有向图K笔画的问题 最后答案就是n+1 1+k 1笔画有一点入度比出度少1 k笔画则统计入度比出度少的点中所有少的总和 cpp include using namespace std; int n,a,b,ans; int flag[1005],fa[1005],out[1005],in[10 阅读全文
posted @ 2019-02-16 10:32 DavidJing 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 这题主要还是分类讨论欧拉回路 首先对于导线一端没有东西的新建一个节点 由于原图不一定连通所以需要用到并查集判断有多少个连通块 将一条导线连接的两个焊点连接 然后先对于只有一个连通块考虑 1.如果一个焊点是孤立点 它对于导线无影响跳过 2.如果一个焊点度数大于2 它必须被烧熔 3.对于每两对奇点 它们 阅读全文
posted @ 2019-02-16 09:43 DavidJing 阅读(294) 评论(0) 推荐(0) 编辑
摘要: 坑 阅读全文
posted @ 2019-02-14 14:41 DavidJing 阅读(84) 评论(0) 推荐(0) 编辑
摘要: 题目求$\frac{1}{x}+\frac{1}{y}=\frac{1}{n!}$已知n, x和y的正整数解的个数 设z=$n!$ $\frac{1}{x}+\frac{1}{y}=\frac{1}{z}$ $x=\frac{yz}{y z}$ 令$t=y z$则$x=\frac{z(t+z)}{t 阅读全文
posted @ 2019-02-14 09:51 DavidJing 阅读(116) 评论(0) 推荐(0) 编辑
摘要: n的所有正约数的和为 $\prod_{i=1}^{m}{(\sum_{j=0}^{c_i}{(p_i^j)})}$ 费马小定理:若p为质数对于任意整数a$a^p\equiv a (mod p)$ 若a不为p的倍数$(a^{p 1}\equiv 1 (mod p))$ 欧拉定理:若正整数a,n互质,则 阅读全文
posted @ 2019-02-12 21:13 DavidJing 阅读(365) 评论(0) 推荐(0) 编辑