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

正题

题目链接: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^71T5,k1,k28,1L,R107


解题思路

很神奇的题,设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,R1iL1i],yi[0,R2iL2i]那么要求(求小于的话)
∑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=1k1L1i+i=1k1xi<i=1k2R2ii=1k2yi
⇒∑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_ii=1k1xi+i=1k2yi<i=1k2R2ii=1k1L1i
右边是已知的,那考虑到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;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/318249.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Luogu2279][HNOI2003] 消防局的设立

文章目录题目法一&#xff1a;树上DP思路代码实现法二&#xff1a;贪心 搜索思路代码实现题目 2020年&#xff0c;人类在火星上建立了一个庞大的基地群&#xff0c;总共有n个基地。起初为了节约材料&#xff0c;人类只修建了n-1条道路来连接这些基地&#xff0c;并且每两个基…

8.13模拟:分治二分倍增快速幂

文章目录前言考场复盘T1 roadT2 shopT3 runT4 stairs总结前言 240分 100802040 T3少取了一个模结果全挂掉了&#xff08;好不容易推出来了…&#xff09; T2也因为各种奇怪的错误挂了分 qwq 吸取教训吧 考场 今天先看题 T1第一眼看错了题意觉得水的不行 T3YBT原题且很水 T2T…

dnSpy 强大的.Net反编译软件

一说起.net的反编译软件&#xff0c;大家首先想到的就是Reflector&#xff0c;ILSpy&#xff0c;dotPeek等等。而dnSpy同样是一款优秀的反编译软件&#xff0c;同时它是开源免费的。官方的描述是: dnSpy是一个调试器和.NET组件编辑器。 即使您没有任何可用的源代码&#xff0c;…

图的匹配

定义见&#xff1a;OI-Wiki 图的匹配 。 二分图 解法 \(1\) &#xff1a;网络流(通用) 二分图最大匹配可以转换成最大流(费用流)模型 。 如果使用 \(\operatorname{Dinic}\) 算法求该网络的最大流&#xff0c;复杂度\(O(\sqrt{n}m)\) 。 具体代码见博客文章网络流 。 解法 \(2\…

AT2161-[ARC065D]シャッフル/Shuffling【dp】

正题 题目链接:https://www.luogu.com.cn/problem/AT2161 题目大意 长度为nnn的0/10/10/1串&#xff0c;mmm个区间&#xff0c;你可以按照顺序任意排列区间中的数字&#xff0c;求最后的可能情况数。 保证给出区间的左端点不降。 1≤n,m≤30001\leq n,m\leq 30001≤n,m≤3000…

【acwing210 异或运算】

【acwing210 异或运算】 题意&#xff1a; 给定你由N个整数构成的整数序列&#xff0c;你可以从中选取一些&#xff08;甚至一个&#xff09;进行异或&#xff08;XOR&#xff09;运算&#xff0c;问所有能得到的不同的结果中第k小的结果是多少。 题解&#xff1a; 把所有数…

小奇探险

文章目录题目题解代码实现题目 小奇去遗迹探险&#xff0c;遗迹里有N个宝箱&#xff0c;有的装满了珠宝&#xff0c;有的装着废品。 小奇有地图&#xff0c;所以它知道每一个宝箱的价值&#xff0c;但是它不喜欢走回头路&#xff0c;所以要按顺序拿这N个宝箱中的若干个。 拿宝…

8.14 模拟:字符串

文章目录前言收获考场复盘T1 wordlistT2 passwordT3 readtreeT4 bracket总结前言 290分 2010070100 又被KH爆碾了qwq T1签到题脑抽写挂了80分… &#xff08;就差这80啊…&#xff09;、 收获 学会了启发式合并 还有一个把字符串所有后缀放进trie树的比较字符串的技巧 考场…

基于Asp.Net Core打造轻量级内部服务治理RPC(二 远程服务设计)

紧接上一篇《基于Asp.Net Core打造轻量级内部服务治理RPC(一)》文章。本文主要讲解基于Asp.Net Core的远程服务设计和实现。在上一篇中讲过,服务提供者提供的服务实际上就是一个Controller&#xff0c;那么是否在该程序中&#xff0c;服务都按照Asp.Net Core 中的Web Api的方式…

[TJOI2008]彩灯

题目&#xff1a; Peter 女朋友的生日快到了&#xff0c;他亲自设计了一组彩灯&#xff0c;想给女朋友一个惊喜。已知一组彩灯是由一排 N个独立的灯泡构成的&#xff0c;并且有 MM 个开关控制它们。从数学的角度看&#xff0c;这一排彩灯的任何一个彩灯只有亮与不亮两个状态&a…

51nod1229-序列求和V2【数学,拉格朗日插值】

正题 题目链接:http://www.51nod.com/Challenge/Problem.html#problemId1229 题目大意 给出n,k,rn,k,rn,k,r求 ∑i1nikri\sum_{i1}^ni^kr^ii1∑n​ikri 1≤T≤20,1≤n,r≤1018,1≤k≤20001\leq T\leq 20,1\leq n,r\leq 10^{18},1\leq k\leq 20001≤T≤20,1≤n,r≤1018,1≤k≤…

【做题记录】图论杂题

P1268 树的重量 $\texttt{solution}$ 算法&#xff1a;(贪心)\(\) 找规律 当 \(n2\) 时&#xff0c;显然答案就是 \(dis(1,2)\) 。 当 \(n3\) 时&#xff0c;答案&#xff1a; \[\dfrac{dis(1,3)dis(2,3)-dis(1,2)}{2} \]当 \(n\) 是任意的&#xff0c;第 \(n\) 条路径可以处于…

[NOIP 2009 提高组]最优贸易

勤劳的一更题目题解代码实现题目 C国有 n个大城市和 m 条道路&#xff0c;每条道路连接这n个城市中的某两个城市。任意两个城市之间最多只有一条道路直接相连。这 m 条道路中有一部分为单向通行的道路&#xff0c;一部分为双向通行的道路&#xff0c;双向通行的道路在统计条数…

8.15模拟:图论

文章目录前言收获考场复盘T1 recoverT2 teamT3 planT4 seqpath总结至暗时刻 前言 60分 303000 … 已经不是被KH爆碾的问题 &#xff08;KH屹立不倒%%%&#xff09; 昨天祈祷不要挂80了 结果今天挂了160&#xff08;还不算那个背包的70&#xff09; qwq 加油吧 奇怪的教训又增加…

Azure Service Fabric Mesh:一个构建任务关键型微服务的平台

本文要点Azure Service Fabric Mesh&#xff08;目前处于预览阶段&#xff09;是一个完全托管的服务&#xff0c;它使你可以使用“无服务器”方法构建、部署和管理由运行在容器中的多语言服务组成的应用程序。Azure Service Fabric Mesh 通过使用 Envoy Proxy 构建的软件定义网…

【做题记录】人类智慧

CF741C Arpa’s overnight party and Mehrdad’s silent entering 描述&#xff1a;有 \(2n\) 个人坐在一张圆桌&#xff0c;第 \(1\) 个位置与第 \(n\) 个位置相邻。现在给他们分配 \(1\) 或 \(2\) 两种食物。要求任意相邻的三个人食物不完全相同。求是否有可行的分配方案。 转…

CF1039D-You Are Given a Tree【根号分治,贪心】

正题 题目链接:https://www.luogu.com.cn/problem/CF1039D 题目大意 给出nnn个点的一棵树&#xff0c;然后对于k∈[1,n]k\in[1,n]k∈[1,n]求每次使用一条长度为kkk的链覆盖树并且不能重复覆盖点时最大覆盖条数。 1≤n≤1051\leq n\leq 10^51≤n≤105 解题思路 先考虑暴力怎么…

P3265 [JLOI2015]装备购买

题目描述&#xff1a; 给N个整数向量&#xff0c;每个向量带权值&#xff0c;求权值和最小的线性基 题解&#xff1a; 按权值v从小->大排序&#xff0c;依次插入线性基。整数线性基的思想类似&#xff0c;只是此时“消去”不能直接xor完成&#xff0c;需要类似高斯消元一样…

模板:欧拉路

文章目录前言代码前言 就是欧拉路的板子 理解起来有亿点困难&#xff08;连大神学长都还没有完全理解…&#xff09; 不过背起来还是很好背的 请勿模仿 如果是无向图&#xff1a;开一个vis数组&#xff0c;走一条边时把它的反向边标记上即可 代码 #include<bits/stdc.h&g…

Surging1.0发布在即,.NET开发者们,你们还在等什么?

开源&#xff0c;是近三十年来互联网经久不衰的话题。它不仅仅是一种技术分享的形态&#xff0c;更是一种开放&#xff0c;包容&#xff0c;互利共赢的互联网精神。 不到30年前&#xff0c;大神林纳德托瓦兹&#xff0c;在赫尔辛基大学实验室里&#xff0c;开发出了第一个版本的…