Wannafly挑战赛25 C 期望操作数 数学
题意:给你你一个数x和一个数q,x<=q,每一次可以等概率把x变成[x,q]中任意一个数,问变成q的步数的期望,输出对998244353取模,多组询问
题解:首先肯定的是,可以预处理,因为只和x,q的差值有关
为了方便理解,我们先定义f[p]表示数p到q的期望,例如对于q=10,f[9]就表示x=9时,期望步数
那么就有 f[1] = 1/q * f[1]+1/q* f[2] +……+ 1/q * f[q-1] + 1
f[2] = 1/(q-1) * f[2] + ……+1/(q-1) * f[q-1]+1
……
f[q-1]=1/2 * f[q-1]+1 (例如样例7-8期望步数2)
所以就有
(q-1)/q * f[1] = 1/q * (f[2]+f[3]+……+f[q-1]+q) (q-1) * f[1] = (f[2]+f[3]+……+f[q-1]+q)
(q-2)/(q-1) * f[2] = 1/(q-1) * (f[3]+f[4]+f[q-1]+q-1) (q-2) * f[2] = (f[3]+f[4]+f[q-1]+q-1)
……
1/2* f[q-1] =1/2 * 2
因为多组询问,所以把这个数组倒着处理要方便一点
看了很多人代码,发现具体转移还可以很多种表示,可能是定义f的时候与不同,反正被秀到
#include<bits/stdc++.h>
#define mod 998244353ll
#define ll long long
#define N 10000010
using namespace std;
int T,l,r;
ll t,f[N],inv[N];
int main()
{
scanf("%d",&T);
inv[]=;
for (int i=;i<N;i++) inv[i]=(mod-mod/i)*inv[mod%i]%mod;
for (int i=;i<N;i++)
{
f[i]=(t*inv[i]+(i+)*inv[i])%mod;
t=(t+f[i])%mod;
}
while (T--)
{
scanf("%d%d",&l,&r);
printf("%lld\n",f[r-l]);
}
}
Wannafly挑战赛25 C 期望操作数 数学的更多相关文章
- Wannafly挑战赛25 B 面积并 数学
题面 题意:有一个正n边形,它的外接圆的圆心位于原点,半径为l .以原点为圆心,r为半径作一个圆,求圆和这个正n边形的面积并.3<=n<=1e8 1<=l<=1e6 0< ...
- Wannafly挑战赛25游记
Wannafly挑战赛25游记 A - 因子 题目大意: 令\(x=n!(n\le10^{12})\),给定一大于\(1\)的正整数\(p(p\le10000)\)求一个\(k\)使得\(p^k|x\ ...
- Wannafly挑战赛25 A 因子 数学
题面 题意:令 X = n!,给定一大于1的正整数p,求一个k使得 p ^k | X 并且 p ^(k + 1) 不是X的因子,n,,p(1e18>=n>=1e4>=p>=2) ...
- Wannafly挑战赛25 B.面积并
链接 [https://www.nowcoder.com/acm/contest/197/B] 分析 特殊优先考虑 首先考虑r>=l这种情况就是圆的面积了 第二就是r<=内切圆的半径,这个 ...
- Wannafly挑战赛25 A.因子
传送门 [https://www.nowcoder.com/acm/contest/197/A] 题意 给你n,m,让你求n!里有多少个m 分析 看这个你就懂了 [https://blog.csdn. ...
- Wannafly挑战赛25 因子 [数论]
一.题意 令 X = n!, 给定一大于1的正整数p 求一个k使得 p ^k | X 并且 p ^(k + 1) 不是X的因子 输入为两个数n, p (1e18>= n>= 10000 & ...
- Wannafly挑战赛25C 期望操作数
Wannafly挑战赛25C 期望操作数 简单题啦 \(f[i]=\frac{\sum_{j<=i}f[j]}{i}+1\) \(f[i]=\frac{f[i]}{i}+\frac{\sum_{ ...
- Wannafly挑战赛27
Wannafly挑战赛27 我打的第一场$Wannafly$是第25场,$T2$竟然出了一个几何题?而且还把我好不容易升上绿的$Rating$又降回了蓝名...之后再不敢打$Wannafly$了. 由 ...
- Wannafly 挑战赛 19 参考题解
这一次的 Wannafly 挑战赛题目是我出的,除了第一题,剩余的题目好像对大部分算法竞赛者来说好像都不是特别友好,但是个人感觉题目质量还是过得去的,下面是题目链接以及题解. [题目链接] Wanna ...
随机推荐
- Embedded之Stack之二
1 Function Programming languages make functions easy to maintain and write by giving each function i ...
- 黑客常用dos命令
http://blog.csdn.net/CSDN___LYY/article/details/77802438
- 图方法:寻找无向图联通子集的JAVA版本
图像处理中一般使用稠密方法,即对图像进行像素集合进行处理.在图像拓扑方面,更多地应用图计算方法. 寻找无向图联通子集的JAVA版本,代码: //查找无向图的所有连通子集//wishchin!!! pu ...
- Canopy聚类算法分析
原文链接:http://blog.csdn.net/yclzh0522/article/details/6839643 Canopy聚类算法是可以并行运行的算法,数据并行意味着可以多线程进 ...
- Content-Encoding值
Content-Encoding值 gzip 表明实体采用GNU zip编码 compress 表明实体采用Unix的文件压缩程序 deflate 表明实体是用zlib的格式压缩的 identity ...
- C# 前一个数是后一个数的父级
private void button2_Click(object sender, EventArgs e) { var str = "1 2 3 4 5 6 7 8 9 10 11 12 ...
- :before和:after结合使用
<div class="slider-block" id="block" style="left: 15.5px;" data=&qu ...
- 移动端APP UI规范
- 6.2 C# 2:利用 yield 语句简化迭代器
class Program { static void Main(string[] args) { object[] values = new object[] { "a", &q ...
- [系统资源攻略]IO第一篇-磁盘IO,内核IO概念
几个基本的概念 在研究磁盘性能之前我们必须先了解磁盘的结构,以及工作原理.不过在这里就不再重复说明了,关系硬盘结构和工作原理的信息可以参考维基百科上面的相关词条--Hard disk drive(英文 ...