牛客 197C 期望操作数
2024-08-30 10:15:08
大意: 给定$x,q$, 每步操作$x$等概率变为$[x,q]$中任意一个数, 求变为$q$的期望操作数.
很容易可以得到$f(x,q)=\frac{\sum\limits_{i=x+1}^qf(i,q)+q-x+1}{q-x}$, 边界条件$f(q,q)=0$.
每次询问复杂度是$O(q)$的, 但是可以发现答案只与$x$和$q$的差有关, 所以预处理出$q=N-1$时的结果即可.
#include <iostream>
#include <cstdio>
#define REP(i,a,n) for(int i=a;i<=n;++i)
#define PER(i,a,n) for(int i=n;i>=a;--i)
using namespace std;
typedef long long ll;
const int P = 998244353; const int N = 1e7+10;
int dp[N], inv[N]; int main() {
inv[0]=inv[1]=1;
REP(i,2,N-1) inv[i]=(ll)inv[P%i]*(P-P/i)%P;
int sum = 0;
PER(i,0,N-2) {
dp[i] = (ll)(sum+N-i)*inv[N-1-i]%P;
(sum += dp[i]) %= P;
}
int t;
scanf("%d", &t);
while (t--) {
int x, q;
scanf("%d%d", &x, &q);
printf("%d\n",dp[N-1-q+x]);
}
}
最新文章
- 为什么现在我最终推荐内存OLTP
- MongoDB 搭建分片集群
- C#按位操作,直接操作INT数据类型的某一位
- 【BZOJ3450】Tyvj1952 Easy 期望DP
- 通过MD5排除重复文件
- javascript中的innerHTML是什么意思,怎么个用法?
- Linux系统下 解决Qt5工程打不开的方法
- 301、404、200、304、500等HTTP状态,代表什么意思?
- javascript代码解释执行过程
- Mysql数据库插入的中文字段值显示问号的问题解决
- android ListView 多次调用 getView方法
- oracle触发器使用总结
- jenkins 构建时,取消构建测试类
- 【iOS】7.4 定位服务->;3.2 地图框架MapKit 功能2:路线规划(导航)
- Java基础之引用(String,char[],Integer)总结
- Lucene.net(4.8.0) 学习问题记录二: 分词器Analyzer中的TokenStream和AttributeSource
- asp.net -mvc框架复习(10)-基于三层架构与MVC搭建项目框架
- Spring Framework学习要点摘抄
- bmi
- 洛谷P4689 [Ynoi2016]这是我自己的发明 [莫队]
热门文章
- docker数据持久化
- 你的windows许可证即将过期
- web前端——Vue.js基础学习
- linux下的什么工具能将DVI文件转换成PostScript文件?
- SQL-W3School-基础:SQL ORDER BY 子句
- ListView在编辑状态下不能获取修改后的值,无法更新数据
- 如何用CSS3来实现卡片的翻转特效
- 怎么通过原生JS改变元素的class属性
- 阶段5 3.微服务项目【学成在线】_day05 消息中间件RabbitMQ_17.RabbitMQ研究-与springboot整合-消费者代码
- MR21修改标准价