各种小的 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 ...
随机推荐
- linux mysql 查看默认端口号和修改端口号
如何查看mysql 默认端口号和修改端口号 2015-03-19 17:42:18 1. 登录mysql [root@test /]# mysql -u root -p Enter password: ...
- Python 基础课程大纲
c0102_变量及数据类型.ipynb 1.数据类型概述 Python标准数据类型:Numbers数字,String字符串,List列表,Tuple元祖,Dici字典.布尔类型 # Numbers ...
- H3C 入站包过滤工作流程
- python基础十一之迭代器和生成器
可迭代 内置方法中含有__iter__的数据类型都是可迭代的,只要是可迭代的就可以使用for循环,反之亦然. print(dir('')) # dir()函数可以获取当前数据类型的所有内置方法 返回值 ...
- 51nod 矩阵快速幂(模板题)
1113 矩阵快速幂 基准时间限制:3 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 给出一个N * N的矩阵,其中的元素均为正整数.求这个矩阵的M次方.由于M次方的计算结果太大 ...
- CS224n: Natural Language Processing学习准备
cs224n 斯坦福网址,里面包含讲课视频,ppt,代码,学习完后做一个问答系统 http://web.stanford.edu/class/cs224n/index.html 下载anaconda, ...
- 有限状态机FSM和层次状态机HSM
前言 就单片机而言,程序可以分为两类:带操作系统的程序和前后台程序:前后台程序从架构上又分为顺序机和状态机. 广义地说, 任何一个程序都是一个状态机, 因为它总是要记住一些状态, 然后根据输入进行输出 ...
- Java图形打印 上下对称三角星
记录记录 @Test public void name03() { int row = 9; for (int i=0,k=row,m=0;i< row;i++){ for(int l=m-i; ...
- cs服务器搭建(cobaltstrike)
linux服务器中安装 1.因为cs这个工具需要用到Java环境,新装的linux系统没有Java环境,所以这里先装一下java环境 yum install -y java-1.8.0-openjdk ...
- 洛谷$P$3160 局部极小值 $[CQOI2012]$ 状压$dp$
正解:状压$dp$ 解题报告: 传送门! 什么神仙题昂,,,反正我是没有想到$dp$的呢$kk$,,,还是太菜了$QAQ$ 首先看数据范围,一个4×7的方格,不难想到最多有8个局部极小值,过于显然懒得 ...