各种小的 dp (精)
Q~ 抛一枚硬币 n 次,每次可能是正面或者反面向上,求没有连续超过 k 次硬币向上的方案数
A :
dp[ i ] 表示到 i 位置的方案数,
1 . 当 i < k 时, dp[i] = dp[i-1]*2
2 . 当 i = k 时, dp[i] = dp[i-1]*2 - 1
3. 当 i > k 时, dp[i] = dp[i-1]*2 - dp[i-k-1]
ll n, k;
ll dp[maxn]; void solve() {
dp[0] = 1;
ll res = 1;
for(ll i = 1; i <= n; i++){
if (i < k) dp[i] = dp[i-1]*2;
else if (i == k) dp[i] = dp[i-1]*2-1;
else dp[i] = dp[i-1]*2-dp[i-k-1];
dp[i] %= mod;
res *= 2; res %= mod;
}
ll ans = (res-dp[n]+mod)%mod;
printf("%lld\n", ans);
}
Q~ 有三种字母, 一个长度为 n 的序列的每一个位置只可能是这三种字母,但要求连续的三个位置不能同时出现这三种,求方案数
A :
dp[i][0] 表示 i 位置与 i-1 位置相同的方案数, dp[i][1] 表示 i 位置与 i-1 位置不同的方案数
dp[i][0] = dp[i-1][0] + dp[i-1][1]
dp[i][1] = 2*dp[i-1][0] + dp[i-1][1]
void solve() {
dp[1][0]=3;
dp[1][1]=0;
for(int i=2;i <= n; i++){
dp[i][0]=dp[i-1][0]+dp[i-1][1];
dp[i][1]=2*dp[i-1][0]+dp[i-1][1];
}
}
各种小的 dp (精)的更多相关文章
- LOJ#6089 小 Y 的背包计数问题 - DP精题
题面 题解 (本篇文章深度剖析,若想尽快做出题的看官可以参考知名博主某C202044zxy的这篇题解:https://blog.csdn.net/C202044zxy/article/details/ ...
- [NOI2009]诗人小G --- DP + 决策单调性
[NOI2009]诗人小G 题目描述: 小G是一个出色的诗人,经常作诗自娱自乐. 但是,他一直被一件事情所困扰,那就是诗的排版问题. 一首诗包含了若干个句子,对于一些连续的短句,可以将它们用空格隔开并 ...
- 牛客小白月赛30 J.小游戏 (DP)
题意:给你一组数,每次可以选择拿走第\(i\)个数,得到\(a[i]\)的分数,然后对于分数值为\(a[i]-1\)和\(a[i]+1\)的值就会变得不可取,问能得到的最大分数是多少. 题解:\(a[ ...
- dp基础√
1.重叠子问题 2.能从小问题推到大问题 Dp: 设计状态+状态转移 状态: 1.状态表示: 是对当前子问题的解的局面集合的一种(充分的)描述.(尽量简洁qwq) ◦ 对于状态的表示 ...
- DP 优化方法大杂烩 & 做题记录 I.
标 * 的是推荐阅读的部分 / 做的题目. 1. 动态 DP(DDP)算法简介 动态动态规划. 以 P4719 为例讲一讲 ddp: 1.1. 树剖解法 如果没有修改操作,那么可以设计出 DP 方案 ...
- Communication System(dp)
Communication System Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 25006 Accepted: 8925 ...
- [noip2005提高]过河 dp
由于L的范围到了109,用普通dp做肯定是不成了: 可以观察到M的数量很小,dp在转移的过程中有大量的无用转移: 可以想到压缩范围,问题是如何压缩,观察若S=9,T=10时,能到达的点,9,10,18 ...
- LightOJ 1422 Halloween Costumes 区间dp
题意:给你n天需要穿的衣服的样式,每次可以套着穿衣服,脱掉的衣服就不能再穿了,问至少要带多少条衣服才能参加所有宴会 思路:dp[i][j]代表i-j天最少要带的衣服 从后向前dp 区间从大到小 更新d ...
- hdu 4055 Number String(有点思维的DP)
Number String Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) T ...
随机推荐
- Intellij Idea更换主题
<h1 class="title">Intellij Idea更换主题</h1> <!-- 作者区域 --> <div class=&qu ...
- 获取 Nuget 版本号
本文告诉大家通过命令行获取 Nuget 的版本号 在 Nuget 中没有 -version 和 -v 和 --version 等写法,只需要直接输入 nuget 在第一行就会显示版本号 nuget N ...
- 如何理解springMVC?
springMVC 工作原理? 简单理解:客户端发送请求-->前端控制器接受客户端的请求DispathServelt-->找到处理器映射HandMapping-->找到处理器hand ...
- Node.js Windows Binary二进制文件安装
1.下载文件 安装包的下载路径为:https://nodejs.org/en/download/ 选择你需要的版本,这里我选择了 Windows Binary 64-bit 版本. 2.配置npm安装 ...
- H3C 三种生成树协议特性的比较
- POJ 2387 Til the Cows Come Home(最短路模板)
题目链接:http://poj.org/problem?id=2387 题意:有n个城市点,m条边,求n到1的最短路径.n<=1000; m<=2000 就是一个标准的最短路模板. #in ...
- 如何在iOS手机上进行自动化测试
版权声明:允许转载,但转载必须保留原链接:请勿用作商业或者非法用途 Airtest支持iOS自动化测试,在Mac上为iOS手机部署iOS-Tagent之后,就可以使用AirtestIDE连接设备,像连 ...
- SAPI(PHP常见的四种运行模式)
SAPI(Server Application Programming Interface)服务器应用程序编程接口,即PHP与其他应用交互的接口,PHP脚本要执行有很多方式,通过Web服务器,或者直接 ...
- python 下载bilibili视频
说明: 1.清晰度的选择要登录,暂时还没做,目前下载的视频清晰度都是默认的480P 2.进度条仿linux的,参考了一些博客修改了下,侵删 3.其他评论,弹幕之类的相关爬虫代码放在了https://g ...
- 什么是激励函数 (Activation Function)
relu sigmoid tanh 激励函数. 可以创立自己的激励函数解决自己的问题,只要保证这些激励函数是可以微分的. 只有两三层的神经网络,随便使用哪个激励函数都可以. 多层的不能随便选择,涉及梯 ...