大意: 给定$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]);
}
}

最新文章

  1. 为什么现在我最终推荐内存OLTP
  2. MongoDB 搭建分片集群
  3. C#按位操作,直接操作INT数据类型的某一位
  4. 【BZOJ3450】Tyvj1952 Easy 期望DP
  5. 通过MD5排除重复文件
  6. javascript中的innerHTML是什么意思,怎么个用法?
  7. Linux系统下 解决Qt5工程打不开的方法
  8. 301、404、200、304、500等HTTP状态,代表什么意思?
  9. javascript代码解释执行过程
  10. Mysql数据库插入的中文字段值显示问号的问题解决
  11. android ListView 多次调用 getView方法
  12. oracle触发器使用总结
  13. jenkins 构建时,取消构建测试类
  14. 【iOS】7.4 定位服务-&gt;3.2 地图框架MapKit 功能2:路线规划(导航)
  15. Java基础之引用(String,char[],Integer)总结
  16. Lucene.net(4.8.0) 学习问题记录二: 分词器Analyzer中的TokenStream和AttributeSource
  17. asp.net -mvc框架复习(10)-基于三层架构与MVC搭建项目框架
  18. Spring Framework学习要点摘抄
  19. bmi
  20. 洛谷P4689 [Ynoi2016]这是我自己的发明 [莫队]

热门文章

  1. docker数据持久化
  2. 你的windows许可证即将过期
  3. web前端——Vue.js基础学习
  4. linux下的什么工具能将DVI文件转换成PostScript文件?
  5. SQL-W3School-基础:SQL ORDER BY 子句
  6. ListView在编辑状态下不能获取修改后的值,无法更新数据
  7. 如何用CSS3来实现卡片的翻转特效
  8. 怎么通过原生JS改变元素的class属性
  9. 阶段5 3.微服务项目【学成在线】_day05 消息中间件RabbitMQ_17.RabbitMQ研究-与springboot整合-消费者代码
  10. MR21修改标准价