首页 > 其他分享 >P4099 [HEOI2013] SAO

P4099 [HEOI2013] SAO

时间:2023-09-26 16:46:29浏览次数:38  
标签:SAO siz times leq HEOI2013 binom P4099 我们 dp

原题

今天我刚知道一个很逆天的事:\(DAG\) 的拓扑序方案数不可做!!!,目前能做到的最优方法好像是状压

我们考虑这题怎么做,对于一个限制,我们关心的是他俩在拓扑序中的相对排名,而这题恰好是一个树形结构,因此我们考虑树形 \(dp\)

我们设 \(dp_{i,j}\) 表示以 \(i\) 为根的子树, \(i\) 在拓扑序中的排名为 \(j\) 的方案数

我们现在对于已经合并过的以 \(u\) 为根的子树,我们考虑把一个没有合并上去的以 \(v\) 为根的子树合并上去。显然有两种情况

  1. 先算 \(u\) 后算 \(v\)
    此时我们考虑合并前 \(u\) 的排名为 \(p_1\) , \(v\) 的排名为 \(p_2\) ,合并后 \(u\) 的排名为 \(p_3\) ,我们可以发现关系: \(p_1-1 \leq p_3 - 1 \leq p_1 - 1 + p_2 - 1\) ,因为 \(u\) 必须在 \(v\) 的前面。化简后变为: \(p_1 \leq p_3 \leq p_1 + p_2 - 1\)
    我们可以列出 \(dp\) 式子: \(dp'_{u,p_3} += dp_{u,p_1} \times dp_{v,p_2} \times \binom{p_3-1}{p_1-1} \times \binom{siz_u + siz_v - p_3}{siz_u - p_1}\)
    其中 \(\binom{p_3-1}{p_1-1}\) 表示前 \(p_3 - 1\) 中一定有 \(p_1 - 1\) 在里面; \(\binom{siz_u + siz_v - p_3}{siz_u - p_1}\) 则表示在 \(u\) 点后面的部分中 \(siz_u - p_1\) 一定在里面

  2. 先算 \(v\) 后算 \(u\)
    同 \(1.\) 的计算方式,直接给出结论: \(p_1 + p_2 \leq p_3 \leq siz_u + siz_v\)
    \(dp\) 的递推式为: \(dp'_{u,p_3} += dp_{u,p_1} \times dp_{v,p_2} \times \binom{p_3-1}{p_1-1} \times \binom{siz_u + siz_v - p_3}{siz_u - p_1}\)

我们暴力 \(dp\) 的复杂度是 \(O(n^3)\)


我们考虑优化,我们发现我们的 \(dp\) 式子中 \(dp_{v,p_2}\) 好像重复出现了很多次,因此我们可以前缀和优化

最终复杂度 \(O(n^2)\)

\(p.s.\) 听说 \(NTT\) 可以优化到 \(O(n^2 \log n)\) ,神奇

标签:SAO,siz,times,leq,HEOI2013,binom,P4099,我们,dp
From: https://www.cnblogs.com/fox-konata/p/17730415.html

相关文章

  • BUUCTF Reverse/[NPUCTF2020]你好sao啊
    里面就一个加密函数,分析后发现这是一段变表的base解密,将四个字符替换成三个字符点击查看代码void*__fastcallRxEncode(constchar*a1,inta2){intv3;//[rsp+18h][rbp-38h]intv4;//[rsp+1Ch][rbp-34h]intv5;//[rsp+20h][rbp-30h]intv6;//[rsp+2......
  • [HEOI2013] Segment李超线段树
    RT感觉会模板就差不多了,可用作处理一些线段或直线的问题,转化过来的也可以。比如DP的斜率优化,直线的话只用一个log,线段要两个log。[HEOI2013]Segment模板#include<iostream>usingnamespacestd;constintmod1=39989;constintmod2=1e9;constdoubleesp=1e-9;const......
  • 【智能优化算法】基于黄金莱维引导机制的阿基米德优化算法(MSAOA)求解单目标优化问题
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......
  • CasaOs安装和卸载
    QuickSetupCasaOS一步安装:wget-qO-https://get.casaos.io|sudobashorcurl-fsSLhttps://get.casaos.io|sudobashUninstallCasaOSv0.3.3ornewercasaos-uninstallBeforev0.3.3curl-fsSLhttps://get.icewhale.io/casaos-uninstall.sh|sudobash这......
  • 玩客云刷cosaOS
      玩客云刷casaos图文教程:玩客云刷casaos图文教程相关工具百度云盘链接:https://pan.baidu.com/s/1iICqPAyv6n0wIOh3H3mCHQ?pwd=cez7天翼云盘链接:https://cloud.189.cn/webx/share?code=ameyuiYjmMJj(访问码:j3y8)玩客云armbian固件:https://github.com/hzyitc/armbi......
  • AVS3中的ESAO
    增强样点自适应补偿(EnhancedSampleAdaptiveOffset)是AVS3中新增的环路滤波技术,和SAO相比其更充分的考虑了纹理和边缘方向特征。ESAO是在整帧的层面是对所有像素进行分类,然后对每一类像素分别传输一个偏移量进行偏移补偿,偏移量在[-7,7]之间。亮度像素分类对于亮度像素首先按照两种......
  • 【题解】[HEOI2013]SAO
    题目分析:考虑这是一个树形图,所以就先直接当作树来做。这个题其实就是让我们求解有多少种拓扑序而且题目中边方向的限制其实就是在限制拓扑序的前后,而一般这种题在设计\(......
  • SSAO的优化
    优化前predepth生成深度图,法线根据深度在shader中计算出来,也可以通过渲染生成。生成AO图高斯模糊,横一遍竖一遍根据法线,重新计算AO图在不透明物体渲染的时候,正常采样......
  • 【题解】[HEOI2013]Segment(李超树)
    [HEOI2013]Segment题目分析:是李超线段树的板子题,在这里就稍微提一嘴李超线段树吧。其实李超线段树就是用来解决插入线段,查询\(x=k\)时纵坐标的最大值的。对于李超线......
  • SAOI 题解汇总
    题解汇总A.Chery的魔法药水与lrc的韭菜所有部分分代码及标程均在这里。这个题目是我们前面的月考卷子改编后的idea,去年就出了,今年翻出来经过加强得到了这道入门题......