正题

题目链接:http://www.51nod.com/Challenge/Problem.html#problemId=1667


题目大意

两个人。
第一个人有k1k_1k1​个集合,第iii个包括了范围[L1i,R1i][L1_i,R1_i][L1i​,R1i​]的整数。
第二个人有k2k_2k2​个集合,第iii个包括了范围[L2i,R2i][L2_i,R2_i][L2i​,R2i​]的整数。

现在两个人分别从各个集合中取出一个数字然后求和。

求第一个人大于/等于/小于第二个人的概率。

1≤T≤5,≤k1,k2≤8,1≤L,R≤1071\leq T\leq 5,\leq k_1,k_2\leq 8,1\leq L,R\leq 10^71≤T≤5,≤k1​,k2​≤8,1≤L,R≤107


解题思路

很神奇的题,设xi∈[0,R1i−L1i],yi∈[0,R2i−L2i]x_i\in[0,R1_i-L1_i],y_i\in[0,R2_i-L2_i]xi​∈[0,R1i​−L1i​],yi​∈[0,R2i​−L2i​]那么要求(求小于的话)
∑i=1k1L1i+∑i=1k1xi<∑i=1k2R2i−∑i=1k2yi\sum_{i=1}^{k_1}L1_i+\sum_{i=1}^{k_1}x_i<\sum_{i=1}^{k_2}R2_i-\sum_{i=1}^{k_2}y_ii=1∑k1​​L1i​+i=1∑k1​​xi​<i=1∑k2​​R2i​−i=1∑k2​​yi​
⇒∑i=1k1xi+∑i=1k2yi<∑i=1k2R2i−∑i=1k1L1i\Rightarrow \sum_{i=1}^{k_1}x_i+\sum_{i=1}^{k_2}y_i<\sum_{i=1}^{k_2}R2_i-\sum_{i=1}^{k_1}L1_i⇒i=1∑k1​​xi​+i=1∑k2​​yi​<i=1∑k2​​R2i​−i=1∑k1​​L1i​
右边是已知的,那考虑到kkk很小那这个问题就是一个很简单的组合数问题了。

枚举一些突破范围限制的数然后容斥即可。

时间复杂度:O(2kk)O(2^kk)O(2kk)


code

#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
const ll P=1e9+7;
ll T,n,m,sum,S,ans1,ans2,ans3,w[30],inv[30];
ll power(ll x,ll b){ll ans=1;while(b){if(b&1)ans=ans*x%P;x=x*x%P;b>>=1;}return ans;
}
ll C(ll n,ll m){ll ans=1;for(ll i=n;i>n-m;i--)ans=ans*i%P;return ans*inv[m]%P;
}
void dfs(ll x,ll s,ll f,ll &sum){if(s<0)return;if(x>n+m){(sum+=C(s+n+m,n+m)*f)%=P;return;}dfs(x+1,s,f,sum);dfs(x+1,s-w[x]-1,-f,sum);return;
}
signed main()
{inv[1]=1;for(ll i=2;i<30;i++)inv[i]=P-inv[P%i]*(P/i)%P;inv[0]=1;for(ll i=1;i<30;i++)inv[i]=inv[i-1]*inv[i]%P;scanf("%lld",&T);while(T--){scanf("%lld",&n);sum=-1;S=1;for(ll i=1,l;i<=n;i++)scanf("%lld%lld",&l,&w[i]),w[i]=w[i]-l,sum-=l,S=S*(w[i]+1)%P;scanf("%lld",&m);for(ll i=n+1,l;i<=n+m;i++)scanf("%lld%lld",&w[i],&l),w[i]=l-w[i],sum+=l,S=S*(w[i]+1)%P;ll ans1=0;dfs(1,sum,1,ans1);ll ans2=0;dfs(1,sum+1,1,ans2);ll ans3=(S-ans2)%P,invn=power(S,P-2);ans2=(ans2-ans1)%P;ans3=ans3*invn%P;ans1=ans1*invn%P;ans2=ans2*invn%P;printf("%lld %lld %lld\n",(ans3+P)%P,(ans2+P)%P,(ans1+P)%P);}return 0;
}

51nod1667-概率好题【容斥,组合数学】相关推荐

  1. CodeForces - 1425D Danger of Mad Snakes(容斥+组合数学)

    题目链接:点击查看 题目大意:初始时有一个二维平面, 平面上给出 n 条蛇,现在可以选择 m 条不同的蛇进行捕杀,当选择了某条蛇,其所在的坐标可以覆盖到的半径为 r 的范围内的蛇都会被捕杀,更确切的说 ...

  2. [LOJ#3124][CTS2019]氪金手游(概率 + 树形 DP + 容斥)

    Address 洛谷 P5405 LOJ #3124 Solution 先考虑如果以某个点(下面定为 111 )为根时,如果所有的限制二元组 (u,v)(u,v)(u,v) 都满足 uuu 是 vvv ...

  3. Codeforces 1342E Placing Rooks(容斥+组合数学)

    题目链接:E. Placing Rooks 题意:给定一个N*棋盘,要求摆放n个rooks(国际象棋里能横竖走的那啥),使得每个格子都能被rooks攻击到,并且正好有k对rooks能相互攻击到,求有多 ...

  4. 【洛谷 P4921】—情侣?给我烧了!(加强版)(容斥+组合数学)

    传送门 接着之前的思路继续推 瓶颈在于预处理f(n)f(n)f(n) 考虑化一下 f(n)=∑j=0n(−1)j1j!2j1(n−j)!2(2n−2j)!=1n!2∑j=0n(−1)jj!2j(nj) ...

  5. 牛客 - 小朋友你是否有很多问号(容斥+组合数学)

    题目链接:点击查看 题目大意:先抛出公质数的定义,若数 num 与 m 个数都互质,则称 num 为 m 个数的 m元公质数 ,现在给出 n 个数和 m ,需要求出任意 m 个数的所有 m 元公质数( ...

  6. 51nod1667(容斥)

    这是一道很好的容斥原理题. 首先这里推荐两道类似的题,spojRNG(1667是它的离散版本),还有bzoj3129(两题容斥部分很类似) 我们首先把第一类区间分为(-INF,L - 1] 与 (-I ...

  7. loj#2542 [PKUWC2018]随机游走 (概率期望、组合数学、子集和变换、Min-Max容斥)

    loj#2542 [PKUWC2018]随机游走 (概率期望.组合数学.子集和变换.Min-Max容斥) 很好很有趣很神仙的题! 题目链接: https://loj.ac/problem/2542 题 ...

  8. LOJ #2542 [PKUWC2018]随机游走 (概率期望、组合数学、子集和变换、Min-Max容斥)

    很好很有趣很神仙的题! 题目链接: https://loj.ac/problem/2542 题意: 请自行阅读 题解首先我们显然要求的是几个随机变量的最大值的期望(不是期望的最大值),然后这玩意很难求 ...

  9. LOJ3124 CTS2019 氪金手游 概率、容斥、树形DP

    传送门 D2T3签到题可真是IQ Decrease,概率独立没想到然后就20pts滚粗了 注意题目是先对于所有点rand一个权值\(w\)然后再抽卡. 先考虑给出的关系是一棵外向树的情况.那么我们要求 ...

最新文章

  1. 山西农业大学c语言答案,第一章C语言及程序设计概述-东北农业大学教务处.doc...
  2. Blend制作的下载动画
  3. 2016江苏省盗取计算机技术,2016年江苏省职业学校技能大赛物联网技术应用与维护公开题库...
  4. 【01背包】最大约数和(jzoj 2126)
  5. tcp测试监听工具_linux 下两款网络性能测试工具介绍
  6. 扭曲效果 效率优化 GrapPass,CommandBuffer对比
  7. python的pyaudio教程入门_Python音频操作工具PyAudio上手教程详解
  8. 单行文本溢出省略号显示
  9. 输入的产品无法再此计算机,一键重装系统时遇到“安装程序无法将Windows配置为在此计算机的硬件上运行”...
  10. 云原生安全构筑下一代企业安全架构
  11. 浙江大学软件工程c语言复试题库,2022浙江大学软件工程考研经验备考指导
  12. win10 计算机菜单,win10系统计算机界面菜单栏不见了的还原方案
  13. 第三方代付入帐是什么意思
  14. 信息收集(四)服务器信息收集
  15. JS运动从入门到兴奋1
  16. 显著性假设(基础篇)
  17. iOS 支付宝集成随手记
  18. 求矩阵A的转置矩阵B,其中Bij=Aji。
  19. json文件读取和搜索
  20. [转]IText导出word之页眉页脚页码

热门文章

  1. Mysql修改字段名和长度_mysql中修改表字段名/字段长度/字段类型详解
  2. 云管边端架构图_中移物联网布局构建“云-管-端”全方位体系架构
  3. vue实现搜索框记录搜索历史_2018-09-13 基于Vue的搜索栏功能实现(we-ui)
  4. iphone最新款手机_苹果罕见“跌停”!遭遇6年来最惨淡一夜,2019年全球股市第一颗雷引爆...
  5. 计算机职称 计算机二级证,国家计算机二级证书含金量有多高
  6. 面试被问到Java 静态代理/动态代理?不用怕,这样子就可以!!
  7. 项目管理六大制约因素_用PCTS理念做好项目管理规划(优秀项目管理者必知)...
  8. java 异步读写_Java异步与AIO
  9. 第jiu届蓝桥杯单片机省赛真题_第九届蓝桥杯单片机组省赛试题.pdf
  10. html 保存文件指定路径,78.上传文件及在服务器保存文件到任意路径