来源:牛客网:

文章目录

  • 题目描述
  • 题解:
  • 代码:
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld

题目描述

一个弹球(可视为质点)被水平抛出,落地时发生完全弹性碰撞,设弹球第一次落地位置为x,则第i次落地位置为(2i-1)x
若弹球第一次落地的位置在区间[L,R]均匀随机分布,求弹球落在区间[L,R]内的总次数的数学期望值

可以证明答案为有理数,若答案表示为最简分数为a/b,则存在c使得bc mod 998244353 = 1 ,只需输出ac mod
998244353

输入描述:

第一行,一个整数n 接下来n行,每行两个空格分隔的整数L,R

输出描述:
输出n行,每行一个整数,表示a*c mod 998244353
示例1
输入

3
3 4
3 5
1 5

输出

1
1
166374060

备注:

n组询问,1<=n<=50000
1<=L<R<=10000000

题解:

期望推导过程:

由题可得:
E(k)=a/b
c=inv(b)
E(k)=a * c % mod
关于逆元的具体求法,看我其他博客

代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll MOD=998244353;
const int maxn=1e7+50;
ll inv[maxn],sum[maxn];
void init()
{inv[1]=sum[1]=1;for(int i = 2; i < maxn; ++i) {inv[i]=(-MOD/i+MOD)*inv[MOD%i]%MOD;sum[i]=(sum[i-2]+inv[i])%MOD;}
}
int main()
{init();int q;scanf("%d", &q);while(q--){ll l,r;scanf("%lld%lld" ,&l,&r);ll e=(r/l+1)/2;ll ans=(sum[2*e-1]-l*inv[r]%MOD*e%MOD)%mod;ans=ans*r%MOD*inv[r-l]%MOD;ans=(ans%MOD+MOD)%MOD;printf("%lld\n", ans);}
}

小球碰撞(理解ing)相关推荐

  1. pygame动画演示小球碰撞

    使用pygame实现动量定理的小球碰撞演示动画 动量定理我们在高中的时候就已经接触过了,是十分重要的物理定理.其中的完全弹性碰撞(机械能守恒)是十分典型的例子,机械能守恒和动量定理两个公式就可以推出小 ...

  2. 一个与小球碰撞有关的有趣问题

    -一个与小球碰撞有关的问题 -本人学号:16340300 -本人学院:数据科学与计算机学院 目录 看看这个问题 如何解决 解法 看看这个问题 如图,在光滑水平面上,有一个球A向墙运动,速度垂直于墙面, ...

  3. Canvas+Js制作动量守恒的小球碰撞

    目的:通过js实现小球碰撞并实现动量守恒 canvas我们就不多说了,有用着呢. 我们可以通过canvas画2D图形(圆.方块.三角形等等)3D图形(球体.正方体等待). 当然这只是基础的皮毛而已,c ...

  4. Java反弹球两球相撞_java实现小球碰撞反弹

    java实现小球碰撞反弹 java实现小球碰撞反弹 首先我们要在一个窗口里面显示这个功能,因此引入JFrame类然后创建一个窗口代码如下: JFrame win=new JFrame();//新建窗口 ...

  5. JS实现小球碰撞边界反弹-点击消失(详细解析实现思路)

    本篇文章给大家带来的是原生JS实现小球碰到边界就反弹,点击小球时小球被会销毁,并重新创建一个小球,让小球的数量一直保持在初始的数量,按照思路按步骤进行讲解,只需要源码的小伙伴可以定位到文本末尾直接复制 ...

  6. js 小球碰壁反弹and小球碰撞

    好像好几天没有更博了呢,最近有点变懒了,这样不好,不好~~我们要做热爱学习的好孩子,嘻嘻,今天下午补上... 我们在学习js的时候,一个很经典的案例就是小球的碰壁反弹效果啦~简单的小球碰壁效果可以慢慢 ...

  7. js小球碰撞js特效

    下载地址 小球碰撞特效.引用test.js文件.我目前做的是10个小球同时出现,你也可以根据你的需要进行修改.如果你想要小球随机出现的话,你只需要把58行的代码解注,然后57行的注释就行了.这个写法还 ...

  8. Simscape基础教程之实例(一)——使用Simscape三维物理仿真自由落体小球碰撞平面

    一. 简介 本实例使用MATLAB/Simulink里面的simscape,实现自由落体小球碰撞平面的三维物理仿真,可用于新手入门simscape的参考示例. 二. 准备工作 需要安装的工具箱 (1) ...

  9. 绘制canvas彩色泡泡小球碰撞

    globalCompositeOperation带来的不一样的烟花 一.知识点 1.动画: setInterval(             function(){                 d ...

  10. js实现多个小球碰撞

    实现思路:小球的移动,是通过改变小球的left和top值来改变,坐标分别为(x,y)当x/y值加到最大,即加到父级的宽度或者高度时,使x值或者y值减小,同理当x值或者y值减到最小时,同样的使x值或者y ...

最新文章

  1. #pragma pack(n) 的作用
  2. optee的RPC流程的代码详解
  3. python爬虫代码模板_Python:学习Python爬虫的第一天
  4. 鲸鱼网络连接_登陆鲸鱼:在网络上读书,第1部分
  5. BZOJ4589. Hard Nim
  6. php setjmp longjmp,我本来以为setjmp和longjmp的实现很复杂【附代码】
  7. 时间函数java_Java时间函数整理
  8. Android 屏幕适配解决方案汇总
  9. 安装完Anaconda python 3.7,想使用python3.6方法
  10. 亏损208亿,滴滴橙心优选裁员关停!曾融资12亿,最高估值320亿
  11. python 人脸识别活体检测_基于Python+Keras+OpenCV实现实时人脸活体检测
  12. php公众号模板在哪,微信公众号文章模板哪里找,这四种编辑软件新手也适合
  13. Matlab fspecial滤波函数
  14. 静态页面练习(pc和移动端两套)
  15. html调用zblog文章,自定义调用ZBLOG分类页、内容页模板
  16. BOSS创投社群:暴利项目创业,他人笑我太疯癫,我笑他人看不穿!
  17. 手工测试点点点,测着测着,找前台小姐姐看电影去了···
  18. jetson NX 官方板卡排针引脚定义
  19. ArcGIS10.2中文版下载与安装教程
  20. linux查看resin 信息,Linux安装resin4.0.40

热门文章

  1. 微服务面试题及详细答案
  2. MATLAB基础绘图操作
  3. 巴特沃斯(Butterworth)滤波器的设计和幅频特性曲线绘制
  4. 2021-09-28智能门锁的设计新方案
  5. 智能小车-红外循迹篇
  6. Arduino循迹小车教程三----测试小车篇
  7. 计算机视觉资料大合集
  8. 在shell脚本执行hbase命令
  9. php js 批量打开页面
  10. 线性同余法产生均匀随机数C语言,利用线性同余法产生随机数进行同步计算