首页 > 其他分享 >「Note」整体DP小记

「Note」整体DP小记

时间:2023-05-26 21:11:53浏览次数:48  
标签:子树 limits sum times Note sube 线段 DP 小记

智慧智慧。

当树上问题能列出二维的 DP 方程,并且转移方程不是很复杂的时候可以用线段树来维护方程,并且用线段树合并来维护。

大概有几种情况可以直接维护。

一种是对于前缀和后缀求和之类的。在线段树合并的过程中实时维护前缀后缀和之类的。

一种是子树加在一起。显然是可以直接维护的。

P5298 [PKUWC2018] Minimax

首先设 \(f_{i,j}\) 表示第 \(i\) 个点的权值为 \(j\) 的概率。

如果一个点是叶子,那么直接设初值。

否则,如果只有一个叶子,那么 \(f_{i,j}\) 直接全都等于这个儿子。

如果有两个儿子,那么假设 \(l,r\) 分别表示左右儿子。那么 \(f_{p,j}=f_{l,j}\times (p_i\times \sum \limits_{k=1}^{j-1} f_{r,k}+(1-p_i)\times \sum \limits_{k=j+1}^m f_{r,k})+f_{r,j}\times (p_i \times \sum \limits_{k=1}^{j-1} f_{l,k}+(1-p_i) \times \sum\limits _{k=j+1}^m f_{l,k})\)

我们可以观察到是 \(l\) 的前缀和乘上一个数加上 \(l\) 的后缀和乘上一个数乘 \(r\) 的单点,\(l\) 的单点乘上另外一边的前缀后缀和。

然后我们可以在两棵线段树合并的时候顺便维护这个东西,维护 \(xl,xr,yl,yr\) 表示左儿子前缀后缀和,右儿子前缀后缀和。然后递归到叶子节点的时候 \(x,y\) 中有一个有值就更新答案。因为权值互不相同所以线段是的叶子节点只有一边可能有值。

最后在根节点维护答案即可。

Submission

P6773 [NOI2020] 命运

喵喵题

状态也不好想。

状态是 \(f_{u,i}\) 表示假设 \(u\) 的子树之外已经确定了,从 \(u\) 向祖宗找,只考虑下面的点在子树里,上面的点在子树外,最近的没有被满足的点的深度为 \(i\) 的方案数。

那么考虑转移。考虑将 \(v\) 子树合并到 \(u\) 子树上。那么就考虑 \(u-v\) 这条边的权值。如果这条边是重要的,那么只有可能是原来 \(u\) 子树上的限制导致的未满足。否则就是两个子树未满足的限制是最大值。

\(f_{u,i}=\sum\limits_{j=0}^{dep-1} f_{u,i}f_{v,j}+\sum \limits_{j=0}^i f_{u,i}f_{v,j}+\sum \limits_{j=0}^{i-1} f_{u,j}f_{v,i}\)

然后还是考虑在线段树合并的时候维护这些。第一项需要 \(v\) 子树的和,在线段树合并之前算出来即可。第二项和第三项需要在边递归的过程中边计算贡献,到叶子节点的时候需要增加贡献。

Submission

P4365 [九省联考 2018] 秘密袭击 coat

题意:树上所有联通块中第 \(K\) 大的点权之和。如果不足 \(K\) 个数,算成 \(0\)。

sol:首先是我想要学会的 trick

\(ans=\sum\limits_{S\sube T} kth\)

\(=\sum \limits_{i=1}^W i \sum\limits_{S\sube T} [kth =i]\)

\(=\sum\limits_{i=1}^W \sum \limits_{S\sube T} [kth\geq i]\)

这一步不是很好理解

\(\sum\limits_{i=1}^W \sum \limits_{S\sube T} [kth\geq i]\)

\(=\sum\limits_{i=1}^W\sum \limits_{S\sube T} \sum \limits_{j=i}^n [kth=j]\)

这样对于每一个 \(j\),如果 \(j=1\),只会被计算一次,\(j=2\),只会被计算 \(2\) 次,以此类推,就相当于在和式前面乘 \(i\)。

\(=\sum\limits_{i=1}^W \sum \limits_{S\sube T} [cnt_i\geq k]\),\(cnt_i\) 指集合中大于等于 \(i\) 的数出现次数。

然后设 DP 方程 \(f_{i,j,k}\) 表示 \(i\) 为根的子树,\(cnt_j\) 为 \(k\) 时的方案数。

显著的,这是一个背包。

但是背包直接转移时 \(O(n^2W)\) 的。

我们考虑将背包写成生成函数的形式 \(F_{i,j}(X)=\sum f_{i,j,k} X^k\)

这样 \(F_{i,j}(X)=X^{j\leq val_i}\prod (F_{v,j}(X)+1)\)

最终答案就是 \(\sum\limits_{i=1}^n \sum \limits_{j=1}^W \sum\limits_{l=k}^n [x^l] F_{i,j}(x)\)

我们假设 \(G_{i,j}(x)=\sum \limits_{v\in sub_i} F_{v,j}(x)\)

容易得到 $G_{i,j}(x)=\sum $

标签:子树,limits,sum,times,Note,sube,线段,DP,小记
From: https://www.cnblogs.com/cc0000/p/17435814.html

相关文章

  • HDU 1029 Ignatius and the Princess IV(基础dp)
    传送门题目大意就是给你n个数(保证n为一个奇数),存在一个数出现的次数大于(n+1)/2次,求这个数;这个数出现的次数比其他数出现的次数加起来还多,那么当这个数出现时+1,其他的数出现时-1,最后得到的数为正数。假定一个数为特殊数,若当前数与特殊数相同则cnt++,若不相同则cnt--,如果这时cnt<0,用当......
  • 旅游小记 -- 苏州和某人的第二次越野
    2023年5月20日,周六一个有意思的日子。没有经过某人的同意,想见某人。20号早上8点整起床,收拾完衣物及洗漱后8点30准时出发,10时许到达红旗4s店给车做保养,11时许踏上高速准备去杭州,堵门!堵某人的门,机会要自己争取,错过了该有多后悔;11时30分,车胎在高速被扎,吓死人,超担心被撞11时35分和......
  • 异步编程(Thread、ThreadPool、Task、异步关键字async/await)
    一、什么是异步Thread,是微软.Net1.0推出;ThreadPool 是微软.Net2.0推出;Task是微软.Net4.0推出;async/await是微软.Net5.0推出;       同步和异步主要用于修饰方法。当一个方法被调用时,调用者需要等待该方法执行完毕并返回才能继续执行,我们称这个方法是同步方法;当一个方......
  • expdp同一个用户下的多表导出导入
    expdpexpuser/oracleparfile=exptable.parcontent=metadata_onlycluster=n编辑exptable.par文件moreexptable.pardumpfile=mdm.dmplogfile=mdm.logschemas=mdmdirectory=expdp_dmpexclude=statisticsflashback_scn=3523577018PARALLEL=4COMPRESSION=allinclude=TA......
  • Part2: DDPM as Example of Variational Inference
    很多次翻看DDPM,始终不太能理解论文中提到的\(\text{VariationalInference}\)到底是如何在这个工作中起到作用。五一假期在家,无意间又刷到徐亦达老师早些年录制的理论视频,没想到其中也有介绍这部分的内容。老师的上课方式总是娓娓道来,把每一步都讲解得很仔细。本文记录一下个人对......
  • LAMP+WordPress
    操作系统:Centos8-StreamIP:192.168.88.128,等下访问网页都是用这个IP访问apache的服务和php服务采用源码安装的方式,mysql数据库采用yum安装mariadb的方式安装配置apache服务安装apr,apr-util,httpd#下载wget,vim,gcc,gcc-c++,make工具和解析命令[root@localhost~]#dnf-yi......
  • Typical DP Contest 社论
    站❤长❤推❤荐目录A.コンテストB.ゲームC.トーナメントD.サイコロE.数F.準急G.辞書順H.ナップザックI.イウィJ.ボールK.ターゲットL.猫M.家N.木O.文字列P.うなぎQ.連結R.グラフS.マス目T.フィボナッチ洛谷题单.可以做做.有小数的精度要求都是\(10^{......
  • 配置wordpress:图片太小太模糊(wordpress 6.2)
    一,图片上传或复制到wordpress后会变模糊原图清晰度:复制到wordpress后的清晰度:二,设置图片大小:把最大宽度和最大高度调整为2048配置后重新上传图片,清晰度提升说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest     对......
  • wordpress插件:用YARPP显示相关文章(wordpress 6.2)
    一,安装插件:插件->安装插件->搜索:RelatedPosts安装后可以进行配置二,测试效果说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest     对应的源码可以访问这里获取: https://github.com/liuhongdi/     或: https:......
  • HTB ACADEMY-Hacking WordPress WRITE UP
    YouhavebeencontractedtoperformanexternalpenetrationtestagainstthecompanyINLANEFREIGHTthatishostingoneoftheirmainpublic-facingwebsitesonWordPress.Enumeratethetargetthoroughlyusingtheskillslearnedinthismoduletofindavar......