【loj6342】跳一跳 期望dp】的更多相关文章

题目描述 一个人从 $1$ 开始向 $n$ 跳,在 $i$ 时会等概率跳到 $i,i+1,...,n$ 之一.求从 $1$ 跳到 $n$ 的期望步数. $n\le 10^7$ . 题解 期望dp傻逼题 设 $f[i]$ 表示从 $i$ 跳到 $n$ 的期望步数,那么有 $f[i]=\frac{\sum\limits_{j=i}^n f[j]}{n-i+1}+1=\frac{\sum\limits_{j=i+1}^nf[j]}{n-i}+1$ ,维护后缀和转移即可. 时间复杂度 $O(n)$ 由于…
令 $f[i]$ 表示已经到达 $i$ 点,为了到大 $n$ 点还期望需要的时间,随便转移一下就行. 由于本题卡空间,要记得开滚动数组. #include <bits/stdc++.h> #define N 12000010 #define LL long long #define setIO(s) freopen(s".in","r",stdin) using namespace std; const LL mod=1000000007; int in…
题目链接 感觉这道题我看了很多天,胡思乱想啊,一开始觉得记忆化搜索会可能T啊,,可能出题人的数据卡的好就稳T了的感觉..后来想了想,好像离散化一下,记一下位置之后再记忆化搜索就应该稳了吧..(好像直接搜也不会T的,,??) #include <set> #include <map> #include <queue> #include <stack> #include <math.h> #include <bitset> #includ…
题意 $n \leqslant 10^5$ Sol 随便推一推就好了吧.. $f[i] = \frac{f[i] + f[i +1] + \dots f[n]}{n - i + 1} + 1$ 移一下项,然后化一化,就做完了.. 然而这题卡空间MMP #include<cstdio> #include<algorithm> #include<iostream> //#define int long long #define Pair pair<int, int&g…
[期望dp] 绵羊跳弹簧 >>>>题目 [题目] T 组数据.对于每一组数据,有n+1 个格子从0 到n 标号,绵羊从0 号结点开始,每次若在 x 位置掷骰子,令掷出的数为num,则跳到 x+num 处. 另外还有 m 个弹簧,绵羊跳到一个有弹簧的格子上时,不需要掷骰子便可向右跳到某个位置(若此时仍有弹簧将继续向右跳),直到到达 n 或者超出 n 停止. 询问绵羊掷骰子的期望次数. [输入格式] 第一行为一个整数T,表示数据组数.接下来对于每组数据:首先一行两个数n, m,含义如题…
https://loj.ac/problem/6342 f[i]表示从i开始跳的期望时间,f[n]=0. 所以f[i]=(f[i]+f[i+1]+……+f[n])/(n-i+1)+1. 移项整理可求f[i],那么这就是一个递推式了. 复杂度O(n),并不清楚kcz玄学的复杂度是怎么做的. 当然这题卡空间,于是省去了数组. #include<cstdio> typedef long long ll; ; ; int n,sum,inv[N]; inline int mod(int x){ whi…
4008: [HNOI2015]亚瑟王 Time Limit: 20 Sec  Memory Limit: 512 MBSec  Special JudgeSubmit: 832  Solved: 515[Submit][Status][Discuss] Description 小 K 不慎被 LL 邪教洗脑了,洗脑程度深到他甚至想要从亚瑟王邪教中脱坑. 他决定,在脱坑之前,最后再来打一盘亚瑟王.既然是最后一战,就一定要打得漂亮.众所周知,亚瑟王是一个看脸的游戏,技能的发动都是看概率的.作为一个…
[总览] [期望dp] 求解达到某一目标的期望花费:因为最终的花费无从知晓(不可能从$\infty$推起),所以期望dp需要倒序求解. 设$f[i][j]$表示在$(i, j)$这个状态实现目标的期望值(相当于是差距是多少). 首先$f[n][m] = 0$,在目标状态期望值为0.然后$f = (\sum f' × p) + w $,$f'$为上一状态(距离目标更近的那个,倒序),$p$为从$f$转移到$f'$的概率(则从$f'$转移回$f$的概率也为$p$),w为转移的花费. 最后输出初始位置…
只有两个python文件,代码很简单. shell.py: #coding:utf-8 import subprocess import math import os def execute_command(cmd): print('start executing cmd...') s = subprocess.Popen(str(cmd), stderr=subprocess.PIPE, stdout=subprocess.PIPE, shell=True) stderrinfo, stdou…
#6342. 跳一跳 题目描述 现有一排方块,依次编号为 1…n1\ldots n1…n.方块 111 上有一个小人,已知当小人在方块 iii 上时,下一秒它会等概率地到方块 iii(即不动),方块 i+1i+1i+1,方块 i+2i+2i+2……方块 nnn 上.求小人到达方块 nnn 所需要的期望时间(单位:秒). 输入格式 一个数字 nnn. 输出格式 若答案 ans=ABans=\frac{A}{B}ans=​B​​A​​ 输出 A×B−1mod(109+7).其中 B−1B^{-1}B…