[hdu4599]期望DP
思路:容易知道G(x)=6x,H(x)=6F(x)。此题的关键是求出F(x)的通项,要求F(x)的通项,先建立递推式:F(x)=1/6 * (F(x-1)+1) + 5/6 * (F(x-1)+1+F(x)-1)。
红色部分的意思是:假设已经连续出现x-1个了,若再出现一个同样的,总共花费F(x-1)+1步到达了目标状态,这种情况的概率是1/6,若出现了一个不一样的,则总共花费F(x-1)+1+F(x)-1,黄色部分是当前的总花费,但由于没到达目标状态,而回到了只比初始状态少走一步的状态,所以应该总花费应该加上F(x)-1,而概率是 5/6。将F(x)化简得到F(x)=6*F(x-1)+1,进而得到F(x) = (6^x-1)/5, H(x) = 6 * F(x), G(x) = 6 * x。求出通项来后就是解模方程了,由于有除法,用除法取模公式或者求逆都行。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include <queue>#include <cmath>#include <algorithm>using namespace std;int pow_mod(int a, int b, int md) { if (b == 0) return 1 % md; long long buf = pow_mod(a, b >> 1, md); buf = (buf * buf) % md; return buf * (b & 1? a : 1) % md;}int solve(int k, int n) { int buf = (pow_mod(6, n, k) + k - 1) % k; if (buf == 0) return (pow_mod(6, n, k * 2011) + k * 2011 - 1) % (k * 2011) / k; else return (pow_mod(6, n, k * 2011) + k - buf - 1) % (k * 2011) / k;}int main() {#ifndef ONLINE_JUDGE freopen("in.txt", "r", stdin);#endif // ONLINE_JUDGE int n; while (cin >> n, n) { cout << solve(30, n) << " " << solve(5, n) << endl; } return 0;} |
[hdu4599]期望DP的更多相关文章
- 【BZOJ-1419】Red is good 概率期望DP
1419: Red is good Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 660 Solved: 257[Submit][Status][Di ...
- [NOIP2016]换教室 D1 T3 Floyed+期望DP
[NOIP2016]换教室 D1 T3 Description 对于刚上大学的牛牛来说, 他面临的第一个问题是如何根据实际情况中情合适的课程. 在可以选择的课程中,有2n节课程安排在n个时间段上.在第 ...
- HDU 4336 Card Collector (期望DP+状态压缩 或者 状态压缩+容斥)
题意:有N(1<=N<=20)张卡片,每包中含有这些卡片的概率,每包至多一张卡片,可能没有卡片.求需要买多少包才能拿到所以的N张卡片,求次数的期望. 析:期望DP,是很容易看出来的,然后由 ...
- 【BZOJ-4008】亚瑟王 概率与期望 + DP
4008: [HNOI2015]亚瑟王 Time Limit: 20 Sec Memory Limit: 512 MBSec Special JudgeSubmit: 832 Solved: 5 ...
- 期望dp BZOJ3450+BZOJ4318
BZOJ3450 概率期望DP f[i]表示到i的期望得分,g[i]表示到i的期望长度. 分三种情况转移: ① s[i]=‘x’:f[i]=f[i-1],g[i]=0 ② s[i]=‘o’:f[i]= ...
- HDU 4405 期望DP
期望DP算是第一题吧...虽然巨水但把思路理理清楚总是好的.. 题意:在一个1×n的格子上掷色子,从0点出发,掷了多少前进几步,同时有些格点直接相连,即若a,b相连,当落到a点时直接飞向b点.求走到n ...
- POJ 2096 【期望DP】
题意: 有n种选择,每种选择对应m种状态.每种选择发生的概率相等,每种选择中对应的每种状态发生的概率相等. 求n种选择和m种状态中每种至少发生一次的期望. 期望DP好别扭啊.要用倒推的方法. dp[i ...
- ZOJ 3822 Domination 期望dp
Domination Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.zju.edu.cn/onlinejudge/showProblem ...
- poj 2096 Collecting Bugs(期望 dp 概率 推导 分类讨论)
Description Ivan is fond of collecting. Unlike other people who collect post stamps, coins or other ...
随机推荐
- MVC-第一个简单的程序
来源于:https://www.cnblogs.com/miro/p/4030622.html 从空白开始,建立一个基本框架详细步骤 1,新建项目 NOTE:模板要选Empty,如果直接选MVC会产生 ...
- 用Java代码来校验QQ号
校验qq号码: 1.要求必须是5-15位数字 2.0不能开头 分析: A:键盘录入一个qq号码 B:写一个功能实现校验 C:调用功能,输出结果. 代码实现:public class RegexDemo ...
- Java去除ArrayList集合中重复字符串的案例
ArrayList去除集合中的字符串重复值 分析: A:创建集合对象 B:添加多个字符串元素 C:创建新集合 D:遍历旧集合,获取得到每一个元素 E:拿着个元素到新集合去找,看有没有 有:不进去 没有 ...
- Centos 7服务器搭建MySQL(mariadb)服务
1.下载并安装MySQL yum install mariadb mariadb-server -y 2.启动MySQL systemctl start mariadb 3.对mariadb进行初始化 ...
- php 推荐密码加密的方法
password_hash() 函数 password_hash() 函数用于创建密码的散列(hash) PASSWORD_DEFAULT - 使用 bcrypt 算法 (PHP 5.5.0 默认). ...
- python学习24之异常
'''''''''1.低级错误:纯语法错误2.中级错误:代码存在隐性错误,逻辑缺陷3.高级错误:软件面对不确定性的异常错误''''''一.捕获异常1.基本异常捕获语句try: #异常捕捉语句的开始 代 ...
- [Windows] Socket Server Failed to bind, error 10048
Address already in use. Typically, only one usage of each socket address (protocol/IP address/port) ...
- .net多线程归并排序
一.概述 在了解排序算法的同时,想到用多线程排序减少排序的时间,所以写了一个简单的示例,加深印象.下面是具体代码 二.内容 环境:vs2017,.net core 2.2 控制台程序. 运行时使用r ...
- HTML中使用CSS样式(上)
在每一个标签上都可以设置style属性,这就是CSS样式: <div style="height:48px;border: 1px solid red;text-align:cente ...
- mybatis if test标签的使用
2019独角兽企业重金招聘Python工程师标准>>> 在使用mybatis 有时候需要进行判断的. 而我们知道mybatis获取值有两种方式 #{}和${}的. 那么,在mybat ...