首页 > 其他分享 >【dp】【竞赛图的性质】ARC163D Sum of SCC 题解

【dp】【竞赛图的性质】ARC163D Sum of SCC 题解

时间:2023-10-18 09:47:43浏览次数:28  
标签:dots 连通 竞赛 个点 ARC163D 题解 Sum 条边 集合

ARC163D

发现这个竞赛图一定能被分为两个集合 \(A\),\(B\)。满足 \(\forall u\in A,v\in B\),均有 \(u\to v\in E\)。答案就是划分这两个集合的方案数。

证明:

首先,竞赛图缩完点后一定是一条链,对强连通分量进行标号,满足编号小的强连通分量指向编号大的强连通分量。不妨令竞赛图 \(G\) 缩完点后的强连通分量编号分别为 \(a_1,a_2\dots a_k\)。则这个图 \(G\) 存在 \(k\) 个 \(i\) 能分出两个满足条件的集合,即 \(\{a_1\dots a_i\}\) 和 \(\{a_{i+1}\dots a_k\},i\in[1,k]\)。而分出的 \(k\) 种集合 \(A\),\(B\) 是与其形成双射关系的,故可转化。

这时就很好用动态规划求解了,定义 \(f_{i,j,k}\) 表示 \(i\) 个点的竞赛图中,\(A\) 集合有 \(j\) 个点,有 \(k\) 条边满足 \(u<v\) 的方案数。

采用刷表法,考虑转移。

若第 \(i+1\) 个点在 \(A\) 中,内部有 \(c\) 条边连向 \(i+1(c\le j)\),则对 \(f_{i+1,j+1,k+c}\) 产生贡献。

若第 \(i+1\) 个点在 \(B\) 中,内部有 \(c\) 条边连向 \(i+1(c\le i-j)\),则对 \(f_{i+1,j,k+j+c}\) 产生贡献。

可得到方程:

\(f_{i+1,j+1,k+c}\leftarrow f_{i+1,j+1,k+c}+f_{i,j,k}\times\dbinom{j}{c}\)

\(f_{i+1,j,k+j+c}\leftarrow f_{i+1,j+1,k+j+c}+f_{i,j,k}\times\dbinom{i-j}{c}\)

答案容易得到:\(\sum\limits_{i=0}^{n-1} f_{n,i,m}\)。

时间复杂度:\(\mathcal{O}(n^5)\)。

空间复杂度:\(\mathcal{O}(n^4)\)。

评测记录

标签:dots,连通,竞赛,个点,ARC163D,题解,Sum,条边,集合
From: https://www.cnblogs.com/Pengzt/p/17771315.html

相关文章

  • 【dp】【进制】P3464 [POI2007] WAG-Quaternary Balance 题解
    P3464显然的,先将原数变为四进制的数。由于算的是进位/不进位的代价最小值和方案数,容易想到dp。这里假定该四进制数是从高位到低位的,顺序显然是由低位到高位。令\(f_{i,0/1}\)表示第\(i\)位进/不进位的最小代价,\(g_{i,0/1}\)表示的是最小代价下的方案数。转移是简单的......
  • [题解] CF1790E - XOR Tree
    CF1790E-XORTree题意给定一颗无根树,在可以改变任意一个点的点权操作基础上,让树上任意简单路径的异或和不为\(0\),问最少需要多少次操作。思路假设某个点为根,设\(pre_x\)为\(x\)点到根的树上前缀异或和,\(a_x\)为\(x\)的点权,则\(x\)和\(y\)之间简单路径的异或和......
  • linux 中 md5sum -c 命令
     001\[root@pc1test01]#ls[root@pc1test01]#seq3>a.txt##测试文件[root@pc1test01]#lsa.txt[root@pc1test01]#cata.txt123[root@pc1test01]#md5suma.txt>a.txt.md5##生成md5码[root@pc1test01]#lsa.txta.txt.md5[root@pc1tes......
  • [题解]CF514D R2D2 and Droid Army
    思路首先,可以转化题意,找到一个极长的区间\([l,r]\)使得(其中\(mx_i\)表示\([l,r]\)区间中属性\(i\)的最大值):\[\sum_{i=1}^{m}mx_i\leqk\]显然对于这个东西当\(l,r\)发生移动时,是极其好维护的,所以想到双指针。因为\(m\leq5\),所以我们可以直接开\(m\)个ST表......
  • 题解——2023年码谷提高组模拟赛1016
    题解——2023年码谷提高组模拟赛1016一套被各种转来转去的题;参考:https://blog.csdn.net/liuziha/article/details/127353981、https://www.luogu.com.cn/blog/Chen5201314/xiao-nei-bi-sai-1025-zong-jie-ti-xie和https://www.cnblogs.com/Clyfort/articles/0927-test-solutio......
  • 「BZOJ2505」tickets 题解
    preface网上目前还没看到我的方法,就大概讲一下做法solution首先想到贪心,考虑\([l,r]\)的最大次数,一定是找到最小的\(x\)满足\(l\simx\)的位数的和大于等于\(k\),然后递归的求解\([x+1,r]\),易证。还是考虑将\(Query(l,r)\)拆分成\(Query(1,r)\)和\(Query......
  • RTMP dimensions not set问题解决方案
    问题RTMP开始推流,打印错误提示:dimensionsnotset源码位置libavformat\mux.ccaseAVMEDIA_TYPE_VIDEO:if((par->width<=0||par->height<=0)&&!(of->flags&AVFMT_NODIMENSIONS)){av_log(s,A......
  • CF1879F Last Man Standing 题解
    原题翻译观察题目,容易发现当题目难度为\(x\)时一个OIer存活时间为\(h_i\lceil\frac{a_i}{x}\rceil\)发现\(a_i\)较小,所以我们先考虑暴力枚举\(x\in[1,\maxa_i]\),然后把原数组按\(a_i\)排个序,对于每组\(\lceil\frac{a_i}{x}\rceil\)相同的部分统一计算他......
  • visual studio智能提示出现慢的问题解决办法
    VisualStudio智能提示出现慢的问题解决办法如下:清理VisualStudio缓存。通过"文件"→"打开文件或项目"→"取消"→"是,清理所有项目"进行清理。清理VisualStudio实例。通过"文件"→"关闭解决方案"进行清理。重置用户数据。打开VisualStudio的开发人员命令提示符,输入devenv.ex......
  • CF1680F Lenient Vertex Cover 题解
    CF1680FLenientVertexCover题解这道题和「JOISC2014Day3」电压非常类似,或者说就是一道题。题意就是给你一个图,问能否对所有点黑白染色,允许最多一条边的两个顶点都染成黑色。黑白染色后其实就是一个二分图,那如果有一条边的两个顶点染成黑色,就是说去掉该边后,剩下的图为二分......