自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(121)
  • 收藏
  • 关注

原创 树链剖分相关

树链剖分这玩意儿还挺重要的,是解决静态树问题的一个很好的工具~

2024-07-10 16:06:31 264

原创 前缀和 & 差分

前缀和方便查询区间和,差分方便进行区间修改。

2024-07-08 13:23:55 865

转载 搜索的优化

在搜索过程中,如果我们能够得知搜索树的当前节点沿着某几条不同分支到达的子树是等效的,那么只需要对其中一条路径进行搜索。在一些问题中,搜索树的各个分支之间的顺序是不固定的。不同的搜索顺序会产生不同的搜索形态,规模也相差甚远。极端法:考虑极端情况,如果最极端(最理想)的情况都无法满足,那么肯定实际情况搜出来的结果不会更优了。数学方法:比如在图论中借助连通分量,数论中借助模方程的分析,借助不等式的放缩来估计下界等等。在搜索过程中,每次对当前状态进行检查,如果发现不可能到达递归边界,就执行回溯。

2024-06-30 08:52:21 30

原创 主定理及其证明

操作加起来更耗时, 还是最下层所有叶节点的。主定理的核心是比较递归树上面那些。情况一:所有叶节点的。

2024-06-28 10:46:26 538 1

原创 树形DP小结

本文用于记录一些做过的树形dp题。

2022-11-24 23:18:18 298

原创 各种dp优化

一句话解释单调队列优化dp:如果一个人比你年轻,还比你强,那你就永远打不过他了.jpg。

2022-11-24 22:35:49 238 1

原创 决策单调性优化dp

1D/1D。

2022-10-26 22:03:39 354

原创 斜率优化dp

形如dp[i]=min{A(i)×B(j)+C(i)+D(j)}dp[i]=min{A(i)×B(j)+C(i)+D(j)}的转移方程可尝试使用斜率优化。(取maxmaxmax是类似的,本文不赘述)

2022-10-26 18:45:59 333

原创 树上前缀和&差分

显然转化后的问题用树状数组就可以简单维护。类比一下,对于树上问题,我们令。主要用途:区间修改,单点查询。

2022-10-26 13:57:42 299

原创 NOIP复健计划——动态规划

dp

2022-10-10 13:58:30 356

原创 势能线段树(均摊分析)

对于每个区间维护区间内的 最大值MaxMaxMax 和 最小值MinMinMin,对于整除操作,如果有Max−⌊Maxd⌋=Min−⌊Mind⌋Max-\lfloor\frac{Max}{d}\rfloor = Min − \lfloor\frac{Min}{d}\rfloorMax−⌊dMax​⌋=Min−⌊dMin​⌋,就转化为区间减。否则直接向下递归。考虑何时满足Max−⌊Maxd⌋=Min−⌊Mind⌋Max-\lfloor\frac{Max}{d}\rfloor = Min − \lfloor\

2022-03-23 15:43:00 1018

原创 基环树小记

概念基环树就是有n个点n条边的图(比树多出现一个环)。特殊形态的基环树无向树(N点N边无向图)外向树(每个点只有一条入边)内向树(每个点只有一条出边)以上三种树有十分优秀的性质,就是可以直接将环作为根。就可以对每个环的子树进行单独处理,最后再处理环找环无向图#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace

2021-11-19 16:11:53 270

原创 [XSY4197] Snow(树形DP)

我们在树上的每个点iii上放aia_iai​个小点,初始时先让每个点单独减,这样要花费aia_iai​之和的次数。然后尝试把某些减合并。一个点上面的小点至多可以向两个相邻的小点连边(这两个小点不能在同一个点上)。每连一条边,合并次数+1,答案-1。问题变成求一棵树内的最大合并次数。首先明确该问题满足最优子结构,即考虑以UUU为根的子树时,若U,VU,VU,V上的小点u,vu,vu,v可以合并,合并u,vu,vu,v 一定不比 不合并u,vu,vu,v以让fau,ufa_u,ufau​,u合并 劣。

2021-11-19 15:20:36 279

原创 动态规划总结

二维费用”的条件多数是以这样一种隐含的方式给出的:最多只能取。不要求把背包装满:初始化时。

2021-11-19 13:44:22 232

原创 位运算及其性质

定义运算名符号效果按位与&如果两个相应的二进制位都为1,则该位的结果值为1,否则为0按位或l两个相应的二进制位中只要有一个为1,该位的结果值为1按位异或^若参加运算的两个二进制位值相同则为0,否则为1取反~对一个二进制数按位取反,即将0变1,将1变0左移<<用来将一个数的各二进制位全部左移N位,右补0右移>>将一个数的各二进制位右移N位,移到右端 的低位被舍弃,对于无符号数,高位补0性质及应用

2021-11-19 12:50:23 684

原创 [XSY3112] 接水果(树上包含路径,整体二分,扫描线)

给出一棵nnn个点的树。接下来给出PPP条树上路径ai→bia_i\to b_iai​→bi​,及其权值cic_ici​。最后有QQQ个询问,每个询问给出一条树上路径ui→viu_i\to v_iui​→vi​,问在包含ui→viu_i\to v_iui​→vi​的所有树上路径中(包含指ui→viu_i\to v_iui​→vi​是ai→bia_i\to b_iai​→bi​的子路径),权值第kkk小的路径权值是多少?不妨设dep[u]<dep[v]dep[u]<dep[v]dep[u]&lt

2021-11-19 12:05:52 114

原创 [AGC009B] Tournament(多叉树转二叉树后的最小可能深度)

传送门把aia_iai​看成faifa_ifai​,建出一棵多叉树,再把多叉树转成二叉树,转出来的每棵二叉树对应着一种比赛方式。以n=8,a2,...,8=1,1,2,4,3,3,3n=8,a_{2,...,8}=1,1,2,4,3,3,3n=8,a2,...,8​=1,1,2,4,3,3,3为例,多叉树转出的二叉树深度=赛程二叉树的深度考虑求多叉树转二叉树后的最小可能深度:假设uuu的所有儿子vvv的子树都已经转化好了:现在要把uuu的子树转成二叉树:设dep[x]dep[x]dep[

2021-11-19 11:08:21 310

原创 [XSY4170] 妹子(线段树上二分)

传送门题意:给出两个长度为NNN的整数序列A1A2...ANA_1A_2...A_NA1​A2​...AN​,B1B2...BNB_1B_2...B_NB1​B2​...BN​。有MMM组询问(opt,l,r,d)(opt,l,r,d)(opt,l,r,d),令n=r−l+1n=r-l+1n=r−l+1若opt=Aopt=Aopt=A:∀i∈[1,n],ai=Al+i−1+d,bi=Bl+i−1\forall i\in[1,n],a_i=A_{l+i-1}+d,b_i=B_{l+i-1}∀i∈[1,n

2021-11-18 17:28:33 118

原创 [XSY] 选举(线段树优化dp)

选举//a[i]=1 or 0 or -1,表示i支持小奇 or 中立 or 支持魔法猪//sum[i]=a[1]+a[2]+...+a[i] //设dp[i]表示把1~i划分成若干区间,(小奇得票-魔法猪得票)的最大值 /*dp[i]=max { dp[j]+1 (sum[i]-sum[j]>0即sum[i]>sum[j]) dp[j] (sum[i]-sum[j]=0即sum[i]=sum[j]) dp[j]-1 (sum[i]-sum[j]<0即sum

2021-11-18 15:15:03 152

原创 [CF995F] Cowmpany Cowmpensation(树形dp,拉格朗日插值)

树形DP:设f[u][i]f[u][i]f[u][i]表示给uuu的子树分配工资,uuu点工资为iii的方案数f[u][i]=∏v∈sonu(∑j=1if[v][j])f[u][i]=\prod\limits_{v\in son_u}(\sum\limits_{j=1}^{i}f[v][j])f[u][i]=v∈sonu​∏​(j=1∑i​f[v][j])前缀和优化:设g[u][i]=∑j=1if[u][j]g[u][i]=\sum\limits_{j=1}^{i}f[u][j]g[u][i]=j=

2021-11-18 14:45:30 142

原创 some useful tricks

异或题思考方向:01trie树,分治2. 二分图最大匹配,最大独立集互相转换3. Snow4. Code5. Code6. Code7. 题目#include<iostream>#include<cstdio>using namespace std;const int N=100010;int n,p,nxt[N],no[200];char s[N];int main(){ scanf("%d",&n); fo...

2021-11-17 22:13:10 232

原创 [XXSY] 构树(prufer序列,树上连通块DP)

传送门CayleyCayleyCayley公式:一个完全图有nn−2n^{n-2}nn−2棵无根生成树(可用prufer序列证明)扩展CayleyCayleyCayley公式:被确定边分为大小为a1,a2,⋯ ,ama_1,a_2,\cdots, a_ma1​,a2​,⋯,am​的连通块,则有nm−2∏i=1main^{m-2}\prod\limits_{i=1}^{m}{a_i}nm−2i=1∏m​ai​种生成树我们可以强制生成树中的边是否与原树中的边相同。设dp[u][i][j]dp[u][i]

2021-11-17 14:42:07 513

原创 [XSY4220] 九万步(结论)

手动构造发现 x=6x=6x=6 时是可行的-101234567xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

2021-11-15 15:44:25 222

原创 关于二项式

组合数(nm)\dbinom{n}{m}(mn​):从 nnn 个物品中选出 mmm 个的方案数。(nm)=n!m!(n−m)!=nm‾m!\dbinom{n}{m}=\dfrac{n!}{m!(n-m)!}=\dfrac{n^{\underline{m}}}{m!}(mn​)=m!(n−m)!n!​=m!nm​​(这个式子只依靠经典的组合意义,所以只在 0≤m≤n0\leq m\leq n0≤m≤n 时确保成立。)推论:对称性:(nm)=(nn−m)\dbinom{n}{m}=\dbinom

2021-11-05 11:08:10 219

原创 生成函数化简技巧

一些重要式子∑i=0∞xi=11−x\sum_{i=0}^{\infty}x^i=\frac{1}{1-x}∑i=0∞​xi=1−x1​推论:11−ax=∑i=0∞aixi\frac{1}{1-ax}=\sum_{i=0}^{\infty}a^ix^i1−ax1​=∑i=0∞​aixi11−xk=∑i=0∞xik\frac{1}{1-x^k}=\sum_{i=0}^{\infty}x^{ik}1−xk1​=∑i=0∞​xik11−cxk=∑i=0∞cixik\frac{1}{1-cx^k}=\

2021-11-04 13:55:13 208

原创 阶乘幂与有限微积分

定义差分算子Δ\DeltaΔ:Δf(x)=f(x+1)−f(x)\Delta f(x)=f(x+1)-f(x)Δf(x)=f(x+1)−f(x)平移算子EEE:Ef(x)=f(x+1)E f(x)=f(x+1)Ef(x)=f(x+1)下降幂:n>0,{xn‾=x(x−1)(x−2)...(x−n+1)x−n‾=1(x+1)(x+2)(x+3)...(x+n)n>0,\begin{cases}x^{\underline{n}}=x(x-1)(x-2)...(x-n+1)\\x^{\unde

2021-11-04 12:20:21 466

原创 游戏 (博弈论)

https://blog.csdn.net/Mys_C_K/article/details/91443390

2021-11-03 21:11:11 2032

原创 2021-10-22

扫描线:https://www.cnblogs.com/Parsnip/p/10887135.htmlhttps://blog.csdn.net/Emma2oo6/article/details/120584307LIS& LCShttps://www.xuebuyuan.com/586419.htmlhttps://blog.csdn.net/guhaiteng/article/details/52643015https://blog.csdn.net/murmured/article

2021-10-22 18:05:11 110

原创 图论复习汇总

三元环计数&四元环计数Blogdfs树,点双,边双,强连通分量Blogbfs树对一个图运行 bfs 算法,每个点uuu的父亲定义为第一次遍历uuu时的前驱结点,若无则为根。非树边只存在在同一层的两个点和相邻层的点中。hihoCoder1147 时空阵题意:问111号点到nnn号点距离恰好为mmm的图的个数。图的边权为111。n,m≤100n,m \leq 100n,m≤100题解:dp(i,j,k)dp(i,j,k)dp(i,j,k) 表示做了前iii层,上一层用jjj个点,

2021-10-20 21:11:39 219

原创 图论复习——最短路

知识点最短路径算法最短路径树每个点uuu的父亲为使uuu得到最短距离的前驱节点,若有多个,则取任意一个。题目CF449B Jzzhu and CitiesBlogCF464E The Classic ProblemBlog[XSY3888] 传送门对每个点uuu,记d(u)d(u)d(u)表示uuu到TTT的最短路,e(u)e(u)e(u)表示删掉它和最短路上父亲的边后的最短路。令dp(u)dp(u)dp(u)表示S=uS=uS=u时的答案。每次找到dpdpdp值最小的点来更新其它

2021-10-20 21:06:32 217

原创 并查集小记

有什么用:查询元素a和元素b是否属于同一组合并元素a和元素b所在组代码实现:#include<iostream>using namespace std;int n,m,p;int fa[5001];int find(int x){ if(fa[x]==x) return x; else{ return fa[x]=find(fa[x]); }}int main(){ cin>>n>>m>

2021-10-20 17:18:51 81

原创 二分图匹配

定义:二分图:一个图被分成了两部分,相同的部分没有边匹配:二分图G的子图M中,M的边集{E}中的任意两条边都不指向同一个顶点极大匹配:在当前已完成的匹配下,无法再通过增加未完成匹配的边的方式来增加匹配的边数最大匹配:是所有极大匹配当中边数最大的一个匹配完全匹配(完备匹配):一个匹配中,图中的每个顶点都和图中某条边相关联有什么用:定理1:最小点覆盖数 = 最大匹配数点覆盖:点集合使得任意一条边至少有一个端点在集合中定理2:最大独立集 = 顶点数 - 最大匹配数

2021-10-20 17:16:32 2813

原创 欧拉回路&哈密顿回路

欧拉回路总结有向图,无向图,混合图的欧拉回路判定百度百科Fleury算法Hierholzer算法//寻找无向图的欧拉路径#include<iostream>#include<vector>#include<stack>using namespace std;vector<int> g[1001];int n,m,x,y,d[1001],s=-1,t=-1;bool vis[1001][1001];stack<int> a

2021-10-20 17:07:11 256

原创 最小割小记

参考博客:最小割浅谈关于最小割常用描述表述一:删去若干条边使得源点到汇点不连通,求删边的权值和的最小可能值。表述二:将点集分为(S,T)(S,T)(S,T),记所有从SSS中出发到TTT中的边的权值和为c(S,T)c(S,T)c(S,T),求c(S,T)c(S,T)c(S,T)的最小值。求最小割a. 以权值为容量,该网络最大流的值即为最小割的值b. 在残量网络中,从源点出发进行一次增广BFS,即得到一个分割。该分割是一个最小割。题型1:对求最小割原理的理解[AHOI2009]最

2021-10-19 22:29:48 275

原创 图论复习——网络流

知识点XSY4188

2021-10-19 21:38:14 145

原创 [NOI2014] 起床困难综合症(二进制,贪心)

#include<bits/stdc++.h>int n,m,ans,x,a1=0,a2=-1;//-1的补码:11111111111... char str[5];int main(){ scanf("%d%d",&n,&m); while(n--){ scanf("%s%d",str,&x); if(str[0]=='A') a1&=x, a2&=x; if(str[0]=='X') a1^=x, a2^=x; if(st.

2021-10-19 16:24:35 95

原创 [POI2015] Pustynia(差分约数,线段树优化建图,拓扑)

传送门Description给定一个长度为n的正整数序列aaa,每个数都在111到10910^9109范围内,告诉你其中sss个数,并给出mmm条信息,每条信息包含三个数l,r,kl,r,kl,r,k以及接下来kkk个正整数x1,x2,...,xkx_1,x_2,...,x_kx1​,x2​,...,xk​,表示a[l],a[l+1],...,a[r−1],a[r]a[l],a[l+1],...,a[r-1],a[r]a[l],a[l+1],...,a[r−1],a[r]里 a[x1],a[x2],..

2021-10-19 16:05:39 148

原创 [集训队作业2018] count(笛卡尔树,生成函数,卡特兰数)

什么情况下两序列同构对于两序列A[1,n],B[1,n]A[1,n],B[1,n]A[1,n],B[1,n],设fA(1,n)=pa,fB(1,n)=pbf_A(1,n)=p_a,f_B(1,n)=p_bfA​(1,n)=pa​,fB​(1,n)=pb​,若pa≠pbp_a\not=p_bpa​​=pb​,A,BA,BA,B一定不同构。若pa=pbp_a=p_bpa​=pb​,若A[1,pa−1]A[1,p_a-1]A[1,pa​−1]与B[1,pb−1]B[1,p_b-1]B[1,pb​−1

2021-10-15 17:27:34 205

原创 图论复习——dfs树,点双,边双,强连通分量

https://blog.csdn.net/weixin_43848437/article/details/105133155https://www.cnblogs.com/lcfsih/p/14391394.html#/c/subject/p/14391394.htmlhttps://blog.aor.sd.cn/archives/418/http://blog.sina.com.cn/s/blog_64675f540100s4nv.htmlhttps://www.cnblogs.com/JiuP

2021-10-14 21:04:13 1444

原创 MST(最小生成树)的构造

是什么:一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边。kruskal算法:#include<iostream>#include<vector>#include<algorithm>#include<cstdio>#include<cstring>using namespace std;struct node { int x,y,t;};int n

2021-10-14 13:51:26 327

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除