链接:https://ac.nowcoder.com/acm/contest/330/H
来源:牛客网

Applese 和它的小伙伴参加了一个促销的抽奖活动,活动的规则如下:有一个随机数生成器,能等概率生成 0∼99

之间的整数,每个参与活动的人都要通过它获取一个随机数。最后得到数字最小的 k 个人可以获得大奖。如果有相同的数,那么后选随机数的人中奖。
 
Applese 自然是最心急的一个,它会抢在第一个去按随机数。请你帮忙计算一下它能够中奖的概率。

仅一行三个正整数 n, k, x,分别表示参与抽奖的总人数(包括Applese),中奖的人数和 Applese 获得的随机数。

 
输出一个正整数表示 Applese 中奖的概率 mod 1e9+7
 
 
首先是推出公式,在dalao的帮助下 理解了
 
枚举0 ~ k-1 ,因为 App 中奖了  然后就是 p1^i   p2^(n-i-1)
其中 p1 为 小于等于 x 的概率
 
由于涉及除法取摸,需要求逆元。
 
b * x = 1 ( mod p)  --- ①
x就是 b的逆元
 
设 a/b = k ,则 a/b = k (mod p)  ----②
 
①②相乘  a*x = k (mod p)
 
这样 求 a/b 的 模 转化成 求 a * x 的 模
 
求 x 即 b的逆元
 
 
逆元求法 :
 
如果 a与p互质  可以用 费马小定理
 
ap-1 = 1 (mod p) 
 
所以 上式可以写为 a*ap-2 = 1 (mod p)
 
那么 a的逆元就是 ap-2
 
 
 #include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int mod=1e9+; ll powm(ll a,ll b=mod-) {
ll sum=,tmp=a%mod;
while(b) {
if(b&) sum=sum*tmp%mod;
tmp=tmp*tmp%mod;
b>>=;
}
return sum;
} int main() {
int n,k,x;
ll val=powm();
scanf("%d%d%d",&n,&k,&x);
ll p1=(x+)*val%mod;
ll p2=(-x)*val%mod;
ll c=,ans=;
for(int i=;i<k;i++) {
ans=ans+c*powm(p1,i)%mod*powm(p2,n--i)%mod;
ans=ans%mod;
c=c*(n-i-)%mod*powm(i+)%mod;
}
printf("%lld",ans);
}
 
 
 
 
 

牛客寒假算法基础集训营4 F Applese 的大奖的更多相关文章

  1. 牛客寒假算法基础集训营4 F Applese 的QQ群

    链接:https://ac.nowcoder.com/acm/contest/330/F来源:牛客网 Applese 有一个QQ群.在这个群中,大家互相请教问题.如 b 向 a 请教过问题,就把 a ...

  2. 牛客寒假算法基础集训营4 I Applese 的回文串

    链接:https://ac.nowcoder.com/acm/contest/330/I来源:牛客网 自从 Applese 学会了字符串之后,精通各种字符串算法,比如……判断一个字符串是不是回文串. ...

  3. 牛客寒假算法基础集训营4 C Applese 走迷宫

    链接:https://ac.nowcoder.com/acm/contest/330/C来源:牛客网 精通程序设计的 Applese 双写了一个游戏. 在这个游戏中,它被困在了一个 n×m迷宫 在迷宫 ...

  4. 牛客寒假算法基础集训营4 G Applese 的毒气炸弹

    链接:https://ac.nowcoder.com/acm/contest/330/G来源:牛客网 众所周知,Applese 是个很强的选手,它的化学一定很好. 今天他又AK了一套题觉得很无聊,于是 ...

  5. 牛客寒假算法基础集训营4 F(二分+拓扑判环)

    题目链接 题目的输出:对于每次提问,输出一行"Yes"表示大家都遵守了群规,反之输出"No". 那么输出的就是一连串的yes和no了,二分一下无环的最大提问位置 ...

  6. 牛客寒假算法基础集训营4 E applese 涂颜色

    链接:https://ac.nowcoder.com/acm/contest/330/E 精通程序设计的 Applese 叕写了一个游戏. 在这个游戏中,有一个 n 行 m 列的方阵.现在它要为这个方 ...

  7. 牛客寒假算法基础集训营4 B applese 走方格

    链接:https://ac.nowcoder.com/acm/contest/330/B 构造题,但是有两个特判... 1  2 2  1 然后就水了,血亏 #include<stdio.h&g ...

  8. 2020牛客寒假算法基础集训营2 J题可以回顾回顾

    2020牛客寒假算法基础集训营2 A.做游戏 这是个签到题. #include <cstdio> #include <cstdlib> #include <cstring ...

  9. 2020牛客寒假算法基础集训营1 J题可以回顾回顾

    2020牛客寒假算法基础集训营1 这套题整体来说还是很简单的. A.honoka和格点三角形 这个题目不是很难,不过要考虑周全,面积是1,那么底边的长度可以是1也可以是2, 注意底边1和2会有重复的, ...

随机推荐

  1. 五颜六色的记事本 Notepad2.cn

    这是一款五颜六色的记事本,支持同时五种颜色的标签录入,可随意切换. 考虑到使用者的用眼舒适度,特意采用颜色对比明显并且色调柔和的配色方案,选择通用的微软雅黑字体作为编辑字体,字体工整便于识别. 针对使 ...

  2. 使用Eclipse中遇到的问题

    1.解决eclipse中jsp没有代码提示问题 原因是项目没有关联TOMCAT库文件: 右键项目—> 属性->JAVA Build Path -> Add Library->S ...

  3. 【271】IDL-ENVI二次开发

    参考:String Processing Routines —— 字符串处理函数 01   STRING 返回字符串. 02   STRCMP 比较字符串,一样返回1,不一样返回0,默认大小写敏感. ...

  4. 封装 Toast

    一. ToastView.java 1 import android.content.Context; import android.view.LayoutInflater; import andro ...

  5. oracle DML-(insert、select、update、delete)

    一.插入记录INSERT INTO table_name (column1,column2,...) values ( value1,value2, ...); 示例:insert into emp ...

  6. 定时node-schedule 模块的使用

    You can install using npm. npm install node-schedule var schedule = require('node-schedule'); var j ...

  7. SpringBoot07 异常枚举、自定义异常、统一的全局异常处理

    1 异常编号和提示信息统一管理 利用枚举来实现异常的统一管理 package cn.xiangxu.springboottest.enums; import lombok.Getter; /** * ...

  8. Python_pip_03_安装模块出现错误时咋整

    >在DOS窗口中到Python安装路径的scripts中执行  pip install pyperclip 出现错误 >>错误提示:Fatal error in launcher: ...

  9. 算法Sedgewick第四版-第1章基础-1.4 Analysis of Algorithms-004计算内存

    1. 2. 3.字符串

  10. Django models模型ORM

    一.ORM介绍 映射关系: 表名 -------------------->类名 字段-------------------->属性 表记录----------------->类实例 ...