zznu 2081 : 舰队管理

题目描述

正如我们所知道的那样,Jack Sparrow不仅仅是一名海盗,同时他也是一名出色的数学家。
在Jack击败EIC(东印度公司)和Davy Jones后,Jack 拥有了众多的船只。
这些船只可粗略的分为两大类:一类来自EIC,一类来自Davy Jones(注意,两者可能有交集)。而Jack将这两类船只抽象为两个集合:集合E,集合D。
管理众多的船只时,往往需要一种很繁琐的集合操作:α。对于集合操作α,Jack定义为: E α D=E∪D-E∩D。
ok,现在Jack需要取出集合对{A,B},并且满足: A∈E B∈D 使得: (A α E)α(B α D)=E α D,其中A,B都是集合。
例如:E={1},D={1,2},那么EαD = {2},符合条件的{A,B}共有2种。
Jack需要知道的是,这样的集合对存在多少?答案对1e9+7取模。

输入

输入包含多组测试数据,每组数据包含三个正整数 L1,L2,L3(L1,L2,L3 <= 1e18),分别表示|E|,|D|,|E∩D|。
 

输出

输入答案,答案对1e9+7取模。

样例输入

复制
1 2 1

样例输出

复制
2


形象表示一下这个自定义符号运算α
E α D=(除去图中阴影部分)

A∈E B∈D,得

A α E=E-A;B α D=D-B;
(A α E)α(B α D)=E α D,要想使得等式成立,A和B必须在阴影部分取(也就是两个集合的交集)并且A和B的元素要相同。

用集合论来说就是求E和D交集的幂集元素个数,也就是2^L3(L3表示E和D交集元素个数)

换种方式说就是就排列组合数

 
还有一点需要注意的是指数比较大,需要用到快速幂。
 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<algorithm>
 4 #include<math.h>
 5 #include<queue>
 6 using namespace std;
 7 #define LL long long
 8 #define INT 0x7fffffff
 9 LL mod=1e9+7;
10 LL quick_pow(LL n, LL k)
11 {
12     LL ans=1;
13     n=n%mod;
14     while(k)
15     {
16         if(k&1)
17             ans=ans*n%mod;
18         n=n*n%mod;
19         k/=2;
20     }
21     return ans;
22 }
23 int main()
24 {
25     LL r1, r2, r3;
26     while(scanf("%lld%lld%lld", &r1, &r2, &r3)!=EOF)
27     {
28         LL ans=quick_pow((LL)2, r3);
29         printf("%lld\n", ans);
30     }
31     return 0;
32 }

 




转载于:https://www.cnblogs.com/zhulei2/p/8010810.html

weixin151云匹面粉直供微信小程序+springboot后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值