首页 > 其他分享 >计数DP

计数DP

时间:2024-08-22 22:27:13浏览次数:9  
标签:pre 连通 len 计数 DP 条边 dp

闲话

NFLS
话说 AT 计数 dp 好题挺多啊。

[ABC248F] Keep Connect

题解区已经讲得十分清楚了。套路地搞 dp,将连通载入其中。\(dp_{i,j,0/1}\) 表示前 \(i\) 列,断了 \(j\) 条边,上下是否连通的方案数。这里我们保证所有的点都与第 \(i\) 列其中的 \(1\) 或两个点相连。然后就可以转移了。这里连通是关键信息,顺序转移是统计。

[ARC166C] LU / RD Marking

思考边与边所产生的冲突。模拟可以发现,只有每条在斜方向延伸的多条曲折的边内部才会有冲突。那么大致方向就是算出每个再相乘。考虑怎么计算,由于每条斜的没有本质区别,只是规模上的扩展。考虑由 \(len\) 条边组成,那么由增量法:选最后一条边,那么倒数第二条必选,规模变为 \(len-2\);不选,规模变为 \(len-1\)。\(f_i \gets f_{i-1} + f{i_2}\)。斐波那契数列。

[ABC207E] Mod i

这是一个很简单的 dp。\(f_{i,j}\) 表示前 \(i\) 个分为 \(j\) 段的方案数。\(f_{i,j} = \sum [pre_i \equiv pre_k \pmod j ]f_{k,j-1}\)。对于同余这一特性进行优化。辅助数组 \(g_{k}\) 记录 \(sum_x\) 模 \(j\) 余 \(k\) 的 \(f_{k,j-1}\)。将 \(j\) 作为阶段转移即可。

f[0][0] = 1;
for(int j = 1;j<=n;++j){
	memset(g,0,sizeof g);
	for(int i = 1;i<=n;++i){
		toadd(g[a[i-1]%j],f[i-1][j-1]);
		toadd(f[i][j],g[a[i]%j]);
	}
}
for(int j = 1;j<=n;++j)ans = (0ll + ans + f[n][j])%mod;

[ABC215E] Chain Contestant

标签:pre,连通,len,计数,DP,条边,dp
From: https://www.cnblogs.com/fight-for-humanity/p/18374877

相关文章

  • 网络通信(TCP+UDP通信)
    一、UDP协议 1.1、recvfrom()参数说明intsockfd,//socket的fdvoid*buf,//保存数据的一块空间的地址size_tlen,//这块空间的大小intflags,//0默认的接收方式-----阻塞方式默认行为是阻塞a.MSG_DONTWAIT不阻塞方式,用他的话代表读的时候是非阻塞方式b.类似......
  • C# start thread include Thread,Task,Async/Await,BackgroundWorker,ThreadPool,Time
    usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Linq;usingSystem.Text;usingSystem.Threading;usingSystem.Threading.Tasks;usingSystem.Windows;usingSystem.Windows.Controls;usingSystem.Windows.Data;using......
  • STM32F4/M4 波特率寄存器 计数公式
    前言STM32中,USART控制器中的波特率寄存器是可以写入分频数(USARTDIV)小数部分的因此能够更精准地得到我们想要的波特率。波特率:每秒钟传输的二进制代码的位数波特率寄存器位说明 波特率计算公式:其中OVER8通过串口控制寄存器1(USART_CR1第15位来配置它就是用来设......
  • 预设型DP
    我们设\(f[i][j][k]\)表示填到\(i\)个数,目前拓展出\(j\)个可以填数的区间(最两边不算,注意是可以填数的区间!!),贡献和为\(k\)。这个是可以填数的区间我们按从小到大进行填数。那么对于任意一个数x显然有三种情况。1.如果x左右目前都没数,那么说明它的左右两个数都比x大,此......
  • 单调栈和单调队列优化DP
    单调栈和单调队列优化DPluoguP1725琪露诺一道比较板的题明显是一个DP,则有\[{dp}_i=\max_{j=i-r}^{i-l}dp_j+a_i\]如果暴力则为\(O(n^2)\)但是发现\(\max_{j=i-r}^{i-l}dp_j\)就是单调队列所解决的问题,所以直接单调队列维护即可#include<bits/stdc++.h>#defineFAS......
  • 131-横向移动-Kerberos攻击&SPN扫描&WinRM&WinRS&RDP
    1、RDP协议        RemoteDesktopProtocol远程桌面协议通常开放3389,Windows上面使用mstsc就可以弹出最常见的远程桌面连接方式,一般都是使用明文进行连接其实还可以使用hash进行        在内网中使用RDP协议一般是需要进行代理转发或者建立节点的端口扫......
  • 无向图三元环计数
    无向图三元环计数题目背景无向图$G$的三元环指的是一个$G$的一个子图$G_0$,满足$G_0$有且仅有三个点$u,v,w$,有且仅有三条边$\langleu,v\rangle,\langlev,w\rangle,\langlew,u\rangle$。两个三元环$G_1,G_2$不同当且仅当存在一个点$u$,满足$u\inG_1$......
  • 序列划分(区间DP)
    题目描述\(n\)个人,每个人手上有一个数\(a_i\)。将这些人分成若干组,组没有编号,要求每组人手上的数字之和都是质数。求合法的分组方案数。输入第一行一个正整数\(T(1\leqT\leq5)\),表示测试数据的组数。每组数据第一行一个正整数\(n(1\leqn\leq15)\)。每组数据第二行\(n\)......
  • [OI] 二项式期望 DP
    OSUOSUAnotherOSUyetAnotherOSUyetyetAnotherOSUOSU的题目是这样的:有一些相邻的块,给定每一个块的联通概率,每个连通块对答案有\(size^{3}\)的贡献,求总期望关于此题我曾写过题解此处此类题的关键之处在于,当我们设计了一个线性状态\(f_{i}\)之后,假如我们基于拼接......
  • Victor and World(状压DP)
    题目描述Aftertryinghardformanyyears,Victorhasfinallyreceivedapilotlicense.Tohaveacelebration,heintendstobuyhimselfanairplaneandflyaroundtheworld.Thereare\(n\)countriesontheearth,whicharenumberedfrom\(1\)to\(n\)......