dp
文章平均质量分 60
铃仙·优昙华院·因幡
这个作者很懒,什么都没留下…
展开
-
Sum of Log(数位dp)
Sum of Log(数位dp)传送门题意:求满足∑i=0X∑j=[i=0]Y[i&j=0]⌊log2(i+j)+1⌋\sum_{i=0}^{X}\sum_{j=[i=0]}^Y [i\&j=0]⌊log_2(i+j)+1⌋∑i=0X∑j=[i=0]Y[i&j=0]⌊log2(i+j)+1⌋的值思路:数位dp:我们可以用数位dp枚举[0,x]和[0,y]的。二进制处理。我们可以讲述搞成二进制,那么可以通过数位dp得到[i&j=0][i\&j=0]原创 2021-07-13 22:42:30 · 115 阅读 · 0 评论 -
D. Ezzat and Grid(dp+线段树维护区间交)
D. Ezzat and Grid(dp+线段树维护区间交)思路:首先题目问删最小的行,我们可以找个满足题意的最长序列,则考虑用dp在解决。状态划分:dp[i]dp[i]dp[i]为选iii行的满足题意最大子序列状态转移:dp[i]=dp[j]+1dp[i]=dp[j]+1dp[i]=dp[j]+1,其中第j行与第i行有交集。我们可以在线段树上进行转移。#include <iostream>#include <algorithm>#include <vect原创 2021-08-23 23:53:02 · 208 阅读 · 0 评论 -
F - Make Pai(区间dp+计数)
F - Make Pai(区间dp+计数)传送门思路:状态划分:dp[i][j]dp[i][j]dp[i][j]为i到j配对完的的方案数我们让i去找个k配对,那么其中间的一定也要配对完才能选[i+1,k-1],即可 将其划分[i+1,k-1]和[k+1,j]两个集合,然后进行状态转移。状态转移:dp[i][j]=dp[i+1][k−1]∗dp[k+1][j]∗Cx+y+1xdp[i][j]=dp[i+1][k-1]*dp[k+1][j]*C_{x+y+1}^{x}dp[i][j]=dp[i+1]原创 2021-09-14 12:58:27 · 71 阅读 · 0 评论 -
G - Groups(计数dp+分组)
G - Groups(计数dp+分组)传送门思路:这题分组,我们可以向推斯特林数的递推一样推这题。状态划分:f[i][j]f[i][j]f[i][j]为1-i个人合法划分j组的方案。当一个人要进入分组的时候,他可以单独分为一组,或者可以放入前面合法组中。状态转移:f[i][j]=f[i−1][j−1]+f[i−1][j]∗(j−i−1m)f[i][j]=f[i-1][j-1]+f[i-1][j]*(j-\frac{i-1}{m})f[i][j]=f[i−1][j−1]+f[i−1][j]∗(j−原创 2021-09-14 13:00:45 · 95 阅读 · 0 评论