Day1 计数类dp 知识点 & 部分例题

OpenClaw插件开发指南:扩展AI智能体的无限可能 OpenClaw插件开发指南介绍了如何扩展AI智能体的功能。该插件系统支持多种类型(功能、集成、工具、界面、工作流插件),具有模块化、低耦合等优势。开发环境需要安装SDK和工具包,通过plugin.json配置插件信息,主文件实现核心功能。API提供智能体管理、任务执行等接口,示例演示了文本处理插件的创建流程。开发者可基于此框架灵活扩展OpenClaw的能力。 阅读详情

概率与期望 dp

相当于计数、数方案数的 dp,其中概率就是 合法方案数 总方案数 \cfrac{合法方案数}{总方案数} 总方案数合法方案数​。

  • 直接想 dp 不正确,如在统计合法方案时先想想如何判合法。

Leftmost Ball

给出 n n n 种不包含白颜色的不同颜色的球,每种颜色有 k k k 个球,所有球除颜色外完全相同,将这些球摆成长 n k nk nk 的一列,然后将每种颜色的球中最靠前的那个球染成白色。求可能的序列总数。 n ≤ 2000 n\le2000 n≤2000。

显然我们只关心白球和第一个非白球的不同颜色的球,而对于后者与其相同颜色的球的贡献直接组合数算即可,不对答案造成影响。而对于最终的序列合法,当且仅当一共 k k k 个白球和 n n n 个颜色的球各有 k − 1 k-1 k−1 个,且对于任意的 i i i,在 [ 1 , i ] [1,i] [1,i] 中白球数量不小于其他颜色的球的颜色种数。

考虑 dp,令 f ( i , j ) f(i,j) f(i,j) 表示放了 i i i 个白球 j j j 种其他颜色的球的合法方案数,其中 i , j i,j i,j 满足 i ≥ j i\ge j i≥j。转移时为了不重考虑序列中最靠左的空位上进行放置球。每当我们放置一种新的颜色的球时,就把所有的 k − 1 k-1 k−1 个同色的球的贡献一起计算掉。

  • 如果放一个白球,则有 f ( i , j ) ← f ( i , j ) + f ( i − 1 , j ) f(i,j)\gets f(i,j)+f(i-1,j) f(i,j)←f(i,j)+f(i−1,j),显然正确;
  • 如果放一种新颜色的球(一起放完),则有

f ( i , j ) ← f ( i , j ) + f ( i , j − 1 ) × ( n − j + 1 ) × ( n k − i − ( j − 1 ) ( k − 1 ) − 1 k − 2 ) f(i,j)\gets f(i,j)+f(i,j-1)\times(n-j+1)\times\binom{nk-i-(j-1)(k-1)-1}{k-2} f(i,j)←f(i,j)+f(i,j−1)×(n−j+1)×(k−2nk−i−(j−1)(k−1)−1​)

  • 其中, n − j + 1 n-j+1 n−j+1 表示剩余颜色种数,组合数表示从剩下的空位中选出 k − 2 k-2 k−2 个填上除了第一个球以外的同色球的方案数。由于每种颜色都有 k − 1 k-1 k−1 个且每次总是一起放完,所以可以直接得到空位数量。

Game with Marbles

袋子里有 r r r 个红球、 g g g 个绿球和 b b b 个蓝球,若干轮从袋子中等概率随机取出一个球,如果是红球就扔掉,如果是蓝球或绿球就放回去,求摸出第 k k k 次蓝球时摸球次数的期望值。 r , g , b , k ≤ 1 0 9 r,g,b,k\le10^9 r,g,b,k≤109。

显然最终次数的期望值可以由三种颜色的球分别被取出次数的期望值组合而成,考虑不断拆贡献。显然蓝球的贡献是 k k k。注意到绿球被取出时,既不会导致红球减少,也不会导致蓝球多模一个,所以我们先无视它们。

对于红球,我们单独考虑每一个红球,假设袋子中只有这一个红球和 b b b 个蓝球。那么它单轮不被取出的概率就是 b b + 1 \cfrac{b}{b+1} b+1b​,取 k k k 次蓝球下来,这个红球被取出的概率即为 1 − ( b b + 1 ) k 1-\left(\cfrac{b}{b+1}\right)^k 1−(b+1b​)k。推广到 r r r 个红球,总贡献即为 ( 1 b + 1 ) × r (\cfrac{1}{b+1})\times r (b+11​)×r。

然后考虑绿球,注意到绿球基本和蓝球等价,所以通过直觉可以得到 g g g 个绿球的贡献即为 k × g b k\times\cfrac{g}{b} k×bg​。这一步有严谨证明但是我没记住也不会。最终答案三者相加即可。

Fortune Wheel

给定一个长度为 n n n 的环,钦定一个起点 x x x,共 k + 1 k+1 k+1 种操作,前 k k k 种操作给出一个长度为 k k k 的数组 P P P,第 i i i 种操作为:从当前位置顺时针移动 P i P_i Pi​ 个单位长度。第 k + 1 k+1 k+1 种操作为:等概率随机一个环上的位置,然后跳到那个位置。求最优策略下从起点出发到达点 1 1 1 的期望操作数。

显然随机操作可以放到一开始还没有进行常规移动进行,且进行随机操作的意义显然是跳到一个最短路更短的一个或一些点上。那么我们先 bfs 计算出每个点到起点的最短路,然后考虑什么时候随机什么时候直接走。

我们把每个点的最短路从小到大排序,枚举这个随机与直接走的阈值 w w w;如果从起点出发的最短路大于 w w w,就进行若干次随机,随机到一个最短路在 w w w 之下的点。设当前枚举到第 i i i 个点的最短路作为 w w w,那么随机到 [ 1 , i ] [1,i] [1,i] 中某个点的期望次数是 n i \cfrac{n}{i} in​;而随机完后显然走的期望最短路,就是 [ 1 , i ] [1,i] [1,i] 中点的平均最短路。

青鱼和怪兽

初始玩家有 n n n hp,怪兽有 m m m hp,任意时刻玩家可以选择以下操作之一:

  • 消耗 1 1 1 单位时间,有 p p p 概率怪兽 hp 减一, ( 1 − p ) (1-p) (1−p) 概率玩家 hp 建议。
  • 玩家 hp 和怪兽 hp 重置为 n n n 和 m m m,不消耗时间。当玩家 hp 归零时强制触发重开操作。

求最优策略下期望经过多少单位时间把怪兽 hp 打空。期望与 1 0 9 10^9 109 取 min ⁡ \min min。

令 f ( i , j ) f(i,j) f(i,j) 表示怪兽 i i i hp、玩家 j j j hp 期望操作值,因为涉及到重开所以式子长这样:
f ( i , j ) ← min ⁡ ( f ( n , m ) , p × f ( i − 1 , j ) + ( 1 − p ) × f ( i , j − 1 ) ) f(i,j)\gets\min\big(f(n,m),p\times f(i-1,j)+(1-p)\times f(i,j-1)\big) f(i,j)←min(f(n,m),p×f(i−1,j)+(1−p)×f(i,j−1))
很显然这个 dp 没法做,要算这个东西需要知道 f ( n , m ) f(n,m) f(n,m),但是知道 f ( n , m ) f(n,m) f(n,m) 需要算这个东西。所以我们考虑设定一个 w w w 代替 f ( n , m ) f(n,m) f(n,m) 放进转移方程中,然后与算出的 f ( n , m ) f(n,m) f(n,m) 进行比较。显然最终算出的 f ( n , m ) ≤ w f(n,m)\le w f(n,m)≤w。

  • 如果 f ( n , m ) < w f(n,m)<w f(n,m)<w,说明 w w w 较大;
  • 如果 f ( n , m ) = w f(n,m)=w f(n,m)=w,说明取 min ⁡ \min min 时总是选择往 w w w 取,说明最终答案 f ans ( n , m ) f_{\text{ans}}(n,m) fans​(n,m) 不大于 w w w。

然后我们发现,这个东西有单调性,于是考虑二分然后 O ( n m ) O(nm) O(nm) 进行 dp 即可。

New Year and Arbitrary Arrangement

一个字符串初始为空,每一次有 A = p a p a + p b A=\cfrac{pa}{pa+pb} A=pa+pbpa​ 的概率在末尾增加一个字符 a \texttt{a} a,有 B = ( 1 − A ) = p b p a + p b B=(1-A)=\cfrac{pb}{pa+pb} B=(1−A)=pa+pbpb​ 的概率在末尾增加一个字符 b \texttt{b} b。当出现了至少 k k k 个形如 ab \texttt{ab} ab 的子序列(即不必连续)时停止。求 ab \texttt{ab} ab​ 子序列的期望数量。

考虑 dp。令 f ( i , j ) f(i,j) f(i,j) 表示前缀中已有 i i i 个 a \texttt{a} a 和 j j j 个 ab \texttt{ab} ab,停止后的期望数,那么转移方程即为
f ( i , j ) = A × f ( i + 1 , j ) + B × f ( i , j + i ) f(i,j)=A\times f(i+1,j)+B\times f(i,j+i) f(i,j)=A×f(i+1,j)+B×f(i,j+i)
其中,当 i + j ≥ k i+j\ge k i+j≥k 时,往末尾多加一个 b b b 就会停止。本来会由此得到一个无限求和式,但是通过变换可以得到,此时的期望值即为 i + j + p a p b i+j+\cfrac{pa}{pb} i+j+pbpa​。这也是终止状态。由于在第一个 a \texttt{a} a 出现前出现的 b \texttt{b} b 不会对答案产生贡献,所以答案取 f ( 1 , 0 ) f(1,0) f(1,0) 避免转移到自己。实现时可以使用记忆化搜索。

Strongly Connected Tournament

给出 n n n 个点,对这 n n n 个点生成一张竞赛图(即点两两连一条双向边),对于所有的 i , j i,j i,j( i < j i<j i<j),有 p = a b p=\cfrac{a}{b} p=ba​ 的概率 i i i 向 j j j 连边,其余情况 j j j 向 i i i 连边。然后对图中的强连通分量缩点,对于每个强连通分量中的点也不断进行以上操作(随机生成竞赛图然后缩点),直到最终每个强连通分量只剩一个点。求所有操作中连的所有边的期望数量。

令 f ( i ) f(i) f(i) 表示点数为 i i i 时的图它的期望值。转移时,考虑枚举最弱的,也就是生成的竞赛图进行缩点后链的终点的那个强连通分量。这个最弱的 SCC,满足在 SCC 之外的所有点都向 SCC 内的每一个点连边,那么如果这个 SCC 大小为 s s s,算上它自己內部连的边,一共连了 j × ( i − j ) + j × ( j − 1 ) 2 j\times(i-j)+\cfrac{j\times(j-1)}{2} j×(i−j)+2j×(j−1)​​ 条边。

进一步,我们需要计算这 i i i 个点组成强连通图的概率 g ( i ) g(i) g(i) 和其中 j j j 个点被其他点全部打赢的概率 h ( i , j ) h(i,j) h(i,j),其中显然满足 j ≤ i j\le i j≤i。反着想一下,只要图中没有点全输完了,即每个点都至少有一次打赢、出度至少为 1 1 1,此时这张图就是强连通的。于是有
g ( i ) = 1 − ∑ j = 1 i − 1 g ( j ) × h ( i , j ) g(i)=1-\sum^{i-1}_{j=1}g(j)\times h(i,j) g(i)=1−j=1∑i−1​g(j)×h(i,j)
对于 d d d,每新加入一个点,它要么是输完了的 j j j 个点中的一个被 i − j i-j i−j 个点打赢,要么就得把 j j j 个点全部打赢,于是有
h ( i , j ) = ( 1 − p ) j × h ( i − 1 , j ) + p i − j × h ( i − 1 , j − 1 ) h(i,j)=(1-p)^j\times h(i-1,j)+p^{i-j}\times h(i-1,j-1) h(i,j)=(1−p)j×h(i−1,j)+pi−j×h(i−1,j−1)
现在考虑 f f f 的转移,容易得到
f ( i ) = ∑ j = 1 i g ( j ) × h ( i , j ) × ( j ( i − j ) + j ( j − 1 ) 2 + f ( j ) + f ( i − j ) ) f(i)=\sum^i_{j=1}g(j)\times h(i,j)\times\left(j(i-j)+\cfrac{j(j-1)}{2}+f(j)+f(i-j)\right) f(i)=j=1∑i​g(j)×h(i,j)×(j(i−j)+2j(j−1)​+f(j)+f(i−j))
考虑当 i = j i=j i=j 即整个图本身满足强连通时会从自己转移,于是进行变形,将此时的贡献单独拿出来即可。时间复杂度 O ( n 2 ) O(n^2) O(n2)。

BBQ Hard

给出两个长度为 n n n 的数组 a , b a,b a,b,求
( ∑ i = 1 n ∑ j = i + 1 n ( a i + a j + b i + b j a i + a j ) )   m o d   1 0 9 + 7 \left(\sum^n_{i=1}\sum^n_{j=i+1}\binom{a_i+a_j+b_i+b_j}{a_i+a_j}\right)\bmod10^9+7 (i=1∑n​j=i+1∑n​(ai​+aj​ai​+aj​+bi​+bj​​))mod109+7
n ≤ 2 × 1 0 5 n\le 2\times 10^5 n≤2×105, 1 ≤ a i , b i ≤ 2 × 1 0 3 1\le a_i,b_i\le 2\times 10^3 1≤ai​,bi​≤2×103。

考虑 ( a i + a j + b i + b j a i + a j ) \binom{a_i+a_j+b_i+b_j}{a_i+a_j} (ai​+aj​ai​+aj​+bi​+bj​​) 的组合意义,可以转化为:在平面上从 ( 0 , 0 ) (0,0) (0,0) 走到 ( a i + a j , b i + b j ) (a_i+a_j,b_i+b_j) (ai​+aj​,bi​+bj​)、只能向 x x x 或 y y y 轴正方向移动的走法方案数。但是这样终点的坐标与 i , j i,j i,j 都有关,我们考虑平移,问题转变为从 ( − a i , − b i ) (-a_i,-b_i) (−ai​,−bi​) 走到 ( a j , b j ) (a_j,b_j) (aj​,bj​) 的方案数。然后就可以在坐标上进行 dp,记 f ( i , j ) f(i,j) f(i,j) 表示走到 ( i , j ) (i,j) (i,j) 的方案数,而起点就是所有的 ( − a i , − b i ) (-a_i,-b_i) (−ai​,−bi​)。最后记得删去 i ≥ j i\ge j i≥j 时的重复贡献,用组合数计算即可。

MEX counting

  • 重讲也不太会!(亢奋
  • To be continued…

二项式反演

类似于容斥,抽象来说就是通过 f i f_i fi​ 容易计算出 g i g_i gi​,然后考虑从 g i g_i gi​ 反推回 f i f_i fi​。

min-max容斥

用子集的 min ⁡ \min min 和 max ⁡ \max max 推出集合的 min ⁡ , max ⁡ \min,\max min,max 甚至于第 k k k 大,在算期望时也是正确的。

Beautiful Bracket Sequence (hard version)

给定一个由 ( , ) , ? \texttt{(},\texttt{)},\texttt{?} (,),? 三种字符组成的字符串 S S S,其中 ? \texttt{?} ? 可以变成左右括号中的任意一个。定义一个括号序列的权值为:对于它的所有一个合法的子字符序列,其括号匹配的层数的最大值。求所有方案下 S S S 的权值和。

easy version: n ≤ 2 × 1 0 3 n\le 2\times 10^3 n≤2×103;hard version: n ≤ 1 0 6 n\le 10^6 n≤106​。

显然若钦定一个分界点 i i i,使得 [ 1 , i ] [1,i] [1,i] 中的左括号数量等于 [ i + 1 , n ] [i+1,n] [i+1,n] 中的右括号数量,那么此时就可以取到答案的深度等于 [ 1 , i ] [1,i] [1,i] 中的左括号数量。我们考虑枚举这个分界点 k k k,然后记录 [ 1 , k ] [1,k] [1,k] 中的左括号数量 a k a_k ak​、 [ k + 1 , n ] [k+1,n] [k+1,n] 中的右括号数量 b k b_k bk​ 和两侧的待定数量分别为 c k , d k c_k,d_k ck​,dk​,我们考虑枚举左侧有多少个 ? \texttt{?} ? 变成左括号,则 k k k 对答案的贡献即为
∑ i = 0 c k ( a k + i ) × ( c k i ) × ( d k a k + i − b k ) \sum_{i=0}^{c_k}(a_k+i)\times\binom{c_k}{i}\times\binom{d_k}{a_k+i-b_k} i=0∑ck​​(ak​+i)×(ick​​)×(ak​+i−bk​dk​​)

这样 easy version 就做完了。考虑化简,得
原式 = a k × ( c k + d k d k − a k + b k ) + c k × ( c k + d k − 1 b k + d k − a k − 1 ) \text{原式}=a_k\times\binom{c_k+d_k}{d_k-a_k+b_k}+c_k\times\binom{c_k+d_k-1}{b_k+d_k-a_k-1} 原式=ak​×(dk​−ak​+bk​ck​+dk​​)+ck​×(bk​+dk​−ak​−1ck​+dk​−1​)

Merge Triplets

给定 n n n,求所有长度为 3 n 3n 3n 的排列 A A A,使得存在至少一个长度相同的排列 B B B,将 B B B 每相邻 3 3 3 个数分为一块,对这些块进行从小到大归并后能够得到 A A A。求方案数。

先考虑如何判断 A A A 是否合法。在归并排序过程中,对于一个块 { a , b , c } \{a,b,c\} {a,b,c},如果有 a > b > c a>b>c a>b>c,那么当 a a a 被归并时 b , c b,c b,c 一定紧接着被归并。其他情况是类似的。于是 A A A 合法需要满足:按照前缀 max ⁡ \max max 所在的点进行划分,划分出的每一段长度都不超过 3 3 3。然后构造几组样例,可以得出另一个条件:划分出的段,长度为 1 1 1 的段的个数不少于长度为 2 2 2 的段。

于是我们考虑 dp。设 f ( i , j , k ) f(i,j,k) f(i,j,k) 表示考虑了前 i i i 个数,有 j j j 个长度为 1 1 1 的段,有 k k k 个长度为 2 2 2 的段。但是注意到我们只关心后两者之间的相对大小,于是状态可以简化为 f ( i , j ) f(i,j) f(i,j), j j j 表示 1 1 1 段与 2 2 2 段个数之差。转移时讨论划分的下一段的长度,乘上方案数即可。

Emiya 家今天的饭

给出一个 n × m n\times m n×m 的表格,第 i i i 行第 j j j 列上有一个非负整数 a i , j a_{i,j} ai,j​。需要在表格中选若干个位置,满足以下要求:

  • 至少选取一个位置;
  • 每行至多选一个位置;
  • 设总共选了 c c c 个位置,那么不存在一列选的个数超过 ⌊ c 2 ⌋ \left\lfloor\cfrac{c}{2}\right\rfloor ⌊2c​⌋​。

对于一种合法方案,它的权值是所有选的位置的 a i , j a_{i,j} ai,j​ 的乘积。求所有合法方案的权值之和。

n ≤ 100 n\le 100 n≤100, m ≤ 2000 m\le 2000 m≤2000​。

注意到至多只会存在一列选择的位置超过 ⌊ c 2 ⌋ \lfloor\frac{c}{2}\rfloor ⌊2c​⌋。所以考虑容斥,用总权值和减去一列不合法的权值和即可。对于计算总方案数,我们记第 i i i 行和为 s ( i ) s(i) s(i),设 g ( i , j ) g(i,j) g(i,j) 表示前 i i i 行选了 j j j 个数的权值和,则有
g ( i , j ) = g ( i − 1 , j ) + s ( i ) × g ( i − 1 , j − 1 ) g(i,j)=g(i-1,j)+s(i)\times g(i-1,j-1) g(i,j)=g(i−1,j)+s(i)×g(i−1,j−1)
然后考虑计算不合法方案数,我们枚举不合法的这一列(记为第 k k k 列),然后类似的做一个 O ( n 2 ) O(n^2) O(n2) 的 dp,令 f ( i , j ) f(i,j) f(i,j) 表示前面 i i i 行中,第 k k k 列选的数比其他列多了 j j j 个时的权值和,那么有
f ( i , j ) = f ( i − 1 , j ) + a i , k × f ( i − 1 , j − 1 ) + ( s ( i ) − a i , k ) × f ( i − 1 , j + 1 ) f(i,j)=f(i-1,j)+a_{i,k}\times f(i-1,j-1)+\left(s(i)-a_{i,k}\right)\times f(i-1,j+1) f(i,j)=f(i−1,j)+ai,k​×f(i−1,j−1)+(s(i)−ai,k​)×f(i−1,j+1)
实现时可以把第二维平移 n n n 保证不越界。总时间复杂度 O ( n 2 m ) O(n^2m) O(n2m)。

杰理AC696N系列芯片外部中断使用教程 本教程详细介绍了杰理AC696N芯片的GPIO引脚中断唤醒功能实现方法。主要内容包括: 功能特点: 支持任意GPIO引脚配置为中断源 可灵活选择上升沿或下降沿触发 提供自定义中断回调函数接口 核心实现: 通过port_wkup_interrupt_init()函数配置GPIO属性 使用request_irq()注册中断服务程序 提供中断使能/关闭接口 注意事项: 此功能在低功耗模式下无效 需注意引脚冲突和中断优先级设置 建议在回调函数中实现简洁的逻辑 应用场景: 按键检测 外部信号监测 事件触发等 本方案提 阅读详情

相关推荐

TI AWR2944毫米波雷达开发板开箱:用官方Demo快速上手3D点云与热图生成

本文详细介绍了TI AWR2944毫米波雷达开发板的开箱与实战应用,包括硬件准备、软件开发环境搭建、Demo固件刷写与配置、实时可视化与数据解析等全流程指南。通过官方Demo快速上手3D点云与热图生成,帮助开发者高效掌握毫米波雷达技术在工业检测、智能交通等领域的应用。

weixin_42627853的博客 307

有关计数问题的DP

有关计数问题的DP 划分数 题目:放苹果_牛客网 描述 有nnn个无区别的物品,将它们划分成不超过mmm组,求出划分方法数模MMM的余数。(1&lt;=m&lt;=n&lt;=1000,2&lt;=M&lt;=10000)(1&lt;=m&lt;=n&lt;=1000, 2&lt;=M&lt;=10000)(1&lt;=m&lt;=n&lt;=1000,2&lt;=M&lt;=10000) 输入 ...

画船听雨眠 637

保姆级教程:用海思PQTool搞定ISP图像调试,从参数读取到固件烧录全流程

本文提供海思PQTool的ISP图像调试全流程指南,从参数读取、实时调试到固件烧录,涵盖环境配置、核心功能解析、参数固化及生产部署。通过实战案例和避坑指南,帮助开发者高效提升图像质量,适用于海思开发板的ISP调试与优化。

weixin_30872337的博客 279

计数类DP

在求解计数类DP问题时,通常要找到一个"基准点",围绕这一基准点构造一个不可划分的"整体",以避免子问题的重叠.用一个字概括就是, "不重不漏". 例题一: 由于直接计算合法路径过于困难(数据大),我们从反面考虑,我们求出经过黑色格子的路径总数,再从总方案数减去非法的方案数即可. 我们假设左上角和右下角的方格也是黑色格子,再对所有的黑色格子的坐标按照从小到大排序(横坐标和纵坐标). 假设F[i]为从左上角走到排序后的第i个黑色格子,并且途中不经过其他格子的路线数. 有: 为什么这么设计状态呢 ?

CK1513710764的博客 1547

ENVI5.6+SARscape实战:基于哨兵一号的PS与SBAS时序InSAR地表形变监测全流程解析

本文详细解析了使用ENVI5.6和SARscape软件基于哨兵一号数据进行PS与SBAS时序InSAR地表形变监测的全流程。从数据获取、预处理到PS-InSAR和SBAS-InSAR处理,提供了实用技巧和优化建议,帮助用户高效完成地表形变监测任务。

weixin_29245767的博客 1151

国科大——形式语言与自动机理论(0812课程)——作业

此次作业题考察,包括但不限于有限自动机、无限自动机、正则文法、正则表达式以及正则语言的性质,题考查下推自动机相关的知识,题考查图灵机相关的知识。此课程建议本科学习过课程的同学选修,成绩占比:考试100%。此课程虽然留有作业,但可做也可不做,且不考勤。

qq_54145399的博客 705

计数类DP(整数划分) && 数位统计DP(计数问题)

Acwing 整数划分问题、计数问题

qq_64637770的博客 1000

Nvidia Tesla A100 驱动安装方法

Nvidia Tesla A100 驱动安装方法 遇到的问题:以前安装tesla系列、geforce系列等gpu 驱动的时候,只需执行nvidiaxxxx.run驱动包或者安装nvidiaxxxx.rpm包即可,但遇到新的GPU Nvidia Tesla A100的时候,安装完驱动似乎不起作用,找了半天资料,原来需要以下步骤才可以使用;

qq_24343177的博客 2万+

算法6:计数DP、数统DP、状压DP

假设此时对应的状态是k(第i-2列到第i-1列伸出来的二进制数,比如00100),k也是一个二进制数,1表示哪几行小方块是横着伸出来的,0表示哪几行不是横着伸出来的。既然从第i-1列到第i列横着摆的,和第i-2列到第i-1列横着摆的都确定了,那么第i-1列 空着的格子就确定了,这些空着的格子将来用作竖着放。首先==k不能和 j在同一行==(如下图):因为从i-1列到第i列是横着摆放的12的方块,那么i-2列到i-1列就不能是横着摆放的,否则就是1 3的方块了。例如当 N=2,M=4 时,共有 5 种方案。

weixin_73538099的博客 1399

保姆级教程:用rosbag录制和回放你的第一个ROS机器人数据(附C++/Python代码)

本文提供了一份详细的ROS机器人数据录制与回放教程,涵盖从命令行操作到C++/Python编程实现的全流程。通过rosbag工具,开发者可以高效记录和回放机器人运行时的传感器数据和控制指令,适用于故障复现、算法调试等多种场景。教程还包含高级技巧如时间同步和大文件处理,帮助用户快速掌握ROS数据管理核心技能。

weixin_29313239的博客 283

基于C#通过PLCSIM ADV仿真软件实现与西门子1500PLC的S7通信方法演示

基于C#通过PLCSIM ADV仿真软件实现与西门子1500PLC的S7通信方法演示

Robot_PLC_HMI_Automation 3155

算法:计数类dp

根据问题的特性,合理定义状态,表示达到当前状态的可能情况数量。状态通常涉及考虑的元素个数、已选择元素的性质(如总和、最大值等)以及其他约束条件。

m0_63997099的博客 1540

【Clickhouse】Cannot allocate block number in Zookeeper write prefix view location

我有一个问题,我CK集群跑批的时候,replicated表变成只读的了下面是CK的报错和当时ZK的日志。下面是zk报错开始 我认为是写入的时候,压力太大,ZK扛不住了,就按照博客里的建议优化了ZK的参数,现在偶尔还会只读,zk报错都是图里的那种clickhouse的集群是5分片的集群,数据量比较大。每小时批量一次,每次2-10W条数据,字段的话,不到200个字段,使用的 jdbc sink写入。

九师兄 834

算法基础复盘笔记Day11【动态规划】—— 区间DP、计数类DP、树形DP、记忆化搜索

考虑一颗以u为根节点的子树,这颗子树的快乐指数应该是u的函数,并且分两种情况:选u和不选u。状态表示: f[u][1]表示以u 为根节点的子树并且包括u的总快乐指数,f[u][0] 表示以u为根节点的子树并且不包括u的总快乐指数。 状态计算:记点u的子节点是s - 选 $u$,f[u][1] += $\sum\limits_{}^{}$f[s][0]; - 不选 $u$,f[u][0] += $\sum\limits_{}

Java技术一点通 2207

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

计数类dp

6

qq_73169752的博客 160

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

动态规划模板题Day5

目录背包问题线性DP区间DP计数类DP数位统计DP状态压缩DP树形DP记忆化搜索有 NN 件物品和一个容量是 VV 的背包。每件物品只能使用一次。第 ii 件物品的体积是 vivi,价值是 wiwi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。 输出最大价值。输入格式第一行两个整数,N,VN,V,用空格隔开,分别表示物品数量和背包容积。接下来有 NN 行,每行两个整数 vi,wivi,wi,用空格隔开,分别表示第 ii 件物品的体积和价值。输出格式输出一个整数,表示最大价值。数

m0_66117547的博客 528

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

【HDU 4028】The time of a day

1.题目链接。题目大意:n个指针,他们的周期分别是[1,n]问这n个数中任选k个,(0&lt;=k&lt;=n)最小公倍数大于等于m的方案书有多少种。 2.显然DP。简单推导一下DP转移:DP[i][j]代表前i个数中,lcm为j的方案数。(注意这里我们是没有考虑选区几个数的,因为没有必要,我们考虑的对象只是lcm,而不是几个数组成了这个lcm).然后就成了一个计数类的DP。 DP[i][j]...

YG爱木木 352

2017国庆郑州集训Day4、5、6

李老师上课根本没法做笔记 所以就三天连起来一起写总结咯动态规划(DP)动态规划是noip最重要的知识点之一 刚开始学的时候理解起来有些困难 入门理解请见: 转送们线性DP复习动态规划思想三要素:阶段、状态、决策 三前提:子问题重叠性、无后效性、最优子结构性质动态规划是对问题空间进行的分阶段、有顺序、无重复、决策性的遍历求解类比有向无环图及其拓扑序例题:解析:还有一些例题就不一一列举了

bbbblzy的博客 439

dp(动态规划)--学习笔记(day1)

动态规划 动态规划(Dynamic Programming,DP)是运筹学的一个分支,是求解决策过程最优化的过程。20世纪50年代初,美国数学家贝尔曼(R.Bellman)等人在研究多阶段决策过程的优化问题时,提出了著名的最优化原理,从而创立了动态规划。动态规划的应用极其广泛,包括工程技术、经济、工业生产、军事以及自动化控制等领域,并在背包问题、生产经营问题、资金管理问题、资源分配问题、最短路径问题和复杂系统可靠性问题等中取得了显著的效果(以上引自百度百科) 那么简单的来说动态规划实际就是要把握状态与状

C_J_W_的博客 591

LOJ #6495. 「雅礼集训 2018 Day1」树

今天我们又做师兄出的比赛了! 我一道题都不会! 抱灵了! 要是这是CSP - Sday1难度我就赶紧退役滚回去搞课内吧 第一题就是期望题…… 题外话:师兄出题时把输出的第一行去掉了,就是说我们在考试的时候并不需要输出四舍五入的结果 别看它看上去很像概率期望DP,实际上你会发现你根本没有办法直接对期望进行状态转移 这道题实质上是一个计数类DP面向数据题 我们先统计出各种树的数量再给它们做一个平均值就...

MZW_BG的博客 943

动态规划

动态规划背包问题最长上升子序列最长公共子序列最短编辑距离区间DP计数类DP状态压缩DP树形DP 背包问题 背包恰好装满的情况: 1.装满价值总最大 memset(dp,-0x3f,sizeof dp);dp[0] = 0; dp[i]&lt;0的话就是装不满 2.装满价值总最小 memset(dp,0x3f,sizeof dp); dp[0] = 0; dp[i]==0x3f3f3f3f的话是装不满 //1.01背包:一些物品选或不选 int n,m,v[N],w[N],s[N],dp[N]; //v是体积

欢迎来到我的世界 203

动态规划Day24

外层 i 从 3 到 n(从小到大),内层 j 从 1 到 i/2(优化计算),保证推导时依赖的 dp 值已计算。递推公式:就是每个节点都做根节点,当前节点的种数就是,左子树*右子树种类数,再求和。特判障碍物,第一行和第一列时,若有障碍物,障碍物包括后面的格子都为0。dp代表到达当前方块的路径数,初始化第一行和第一列,只能为1.dp代表到达当前方块的路径数,初始化第一行和第一列,只能为1.,覆盖 “拆 / 不拆剩余数” 两种情况;初始化:0个节点有1种,1个节点也是1种。遍历时,若有障碍物,dp为0。

qq_69580466的博客 266

3.16打卡day37

必需重写pow和stoll,不然都会超存储范围,N最大10^100,远大于long long最大值(9.2×10^18),分别统计数字d在每一位出现的个数n,将该数字分成三段,当前位x,当前位的高位组成的数字high,当前位的低位组成的数字low,比如34567,统计百位上d=1的出现次数,x=5,high=34,low=67。

DDzqss的博客 418

day 37 第九章 动态规划part05

本题是一个典型的利用动态规划解决组合计数的问题,本质上可以类比为完全背包问题(因为每种面额的硬币有无限个,就像完全背包里每种物品可以无限次取用一样)。本题属于组合计数类的动态规划问题,和前面一些背包问题的变体有相似之处,但又有所不同,这里着重考虑元素组合的顺序,即顺序不同的序列被视作不同的组合。时的元素组合的个数,然后利用已知的状态(更小总和时的组合个数情况)去推导出更大总和时的组合个数。时,有一种特殊的组合情况,就是什么元素都不选,这也算作是一种有效的 “组合”,所以把它初始化为。当两层循环都结束后,

m0_72789504的博客 1290

SDOI2019二轮 正式退役记

转眼间就从一轮结束来到了二轮。 Day0 下午坐火车从青岛来到济南。可能是比去年考得早的缘故吧,今年的济南没有像去年那样热的令人难受却好多地方不给开空调。下了火车赶往考试地点,还是去年考试的地方,还是在编程兔。排队签到抽了考号,是18号。去试机的时候发现和lyf挨着,这似乎是第一次我在OI正式考试中与熟人挨着呢。曾经听学长说挨着的话如果水平差不多,可以两个人按照同样的进度看题做题,据那位学长所说,...

forever_shi的博客 474

蓝桥杯国赛备赛DAY3

1.计数类dp 900. 整数划分 这题解法不唯一, 完全背包 计数dp 记忆化dp 甚至分治法 计数类dp的分发不太会用 经过深思熟虑后,决定不学新东西了。 原因有x: ①还有2个月就要考研了,剩下的时间不多 ②两周的时间不足以支持学懂并应用好 ③会比较影响心情,因为两边都要注入新的知识(本人比较弱,大佬勿喷) ④自己的能力有限,最多冲个国三,国二的希望也是微乎其微,因此国三算是第一目标。(做一题就有优秀奖,我相信至少还是能做出一题的,因此把第一个目标定在国三,先写出一题,然后尽量写到50分)

BOWWOB的博客 367
上一篇: 入营第一天游记
下一篇: Day3 二分图 & 网络路
UnderTheTime
博客等级 码龄4年 790粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值