链接 B 小a的旅行计划

  • 把\(n\)个数中选任意数分成\(a,b\)两个集合,集合无区别,要求不包含且有交,求方案数。\(n\leq 10^{13}\)
  • 首先讨论\(a,b\)并集是否为全集:
  • 若是全集,那答案即为\(S(n,3)*3\),也就是\(n\)个有区别的小球放在\(3\)个无区别盒子内,然后枚举三个盒子哪一个是交集。
  • 若不是,则答案为\(S(n,4)*C(4,2)*2\),也就是\(n\)个有区别的小球放在\(4\)个无区别盒子内,然后枚举哪两个是补集和交集,两个可以换。
  • 答案就是两个加起来,\(S(n,4)\)这么算:

\[S(n,4)=\frac {2^{n-1}-3^{n-1}+\frac {4^{n-1}-1}{3}}{2}
\]

  • \(S(n,3)\)为:

\[\frac {3^{n-1}+1}{2}-2^{n-1}
\]

  • 复杂度\(O(logn)\)
#include<bits/stdc++.h>
#define R register int
#define ll long long
using namespace std;
const int N=100001;
const int mod=1e8+7;
ll n,ans,res,inv2,inv3;
int gi(){
R x=0,k=1;char c=getchar();
while((c<'0'||c>'9')&&c!='-')c=getchar();
if(c=='-')k=-1,c=getchar();
while(c>='0'&&c<='9')x=(x<<3)+(x<<1)+c-'0',c=getchar();
return x*k;
}
ll Qpow(ll x,ll y){
ll ans=1,bas=x;
while(y){
if(y&1)ans=ans*bas%mod;
bas=bas*bas%mod,y>>=1;
}return ans;
}
int main(){
cin>>n,inv2=Qpow(2,mod-2),inv3=Qpow(3,mod-2);
ans=((inv2*(Qpow(3,n-1)+1)%mod-Qpow(2,n-1)+mod)%mod*3)%mod;
res=(Qpow(4,n-1)-Qpow(3,n-1)+mod)%mod;
res=(res+mod-(Qpow(4,n-1)-Qpow(2,n-1)))%mod;
res=(res+inv3*(Qpow(4,n-1)-1)%mod);
res=res*inv2%mod;
cout<<(ans+res*12%mod)%mod<<endl;
return 0;
}

最新文章

  1. asp.net mvc bootstrap datatable 服务端分页 更新槽糕的代码【1】
  2. JMeter学习(三十四)测试报告优化
  3. 百度音乐API抓取
  4. 转 C# 给某个方法设定执行超时时间
  5. UISearchBar和 UISearchDisplayController的使用
  6. [Effective JavaScript 笔记]第17条:间接调用eval函数优于直接调用
  7. MySQL 事件跟踪器 , MySQL 无须重启服务 跟踪 SQL , 也无须配置日志
  8. codeforces 333A - Secrets
  9. python保留指定文件、删除目录其他文件的功能(1)
  10. Android应用开发学习之Toast消息提示框
  11. jqGrid的搜索框下拉
  12. Java 9 揭秘(3. 创建你的第一个模块)
  13. centos7+cdh5.10.0搭建
  14. Eclipse中使用Maven搭建SSM框架
  15. 学习使人快乐7--Mail收发原理+计划
  16. &amp;#65279导致网页顶部空白一行的解决办法【实测有效】
  17. windows 上安装冷门python模块
  18. 中文代码示例之Electron桌面应用开发初体验
  19. 环境部署(七):linux下Jenkins+Git+JDK持续集成
  20. 关于TCP/IOCP构架中出现的假死连接解决方案

热门文章

  1. [CSP-S模拟测试]:随(快速幂+数学)
  2. 前端学习记录 week 1
  3. flex几种多列布局
  4. selinux 了解2
  5. Ajax初探
  6. git_03_git可视化工具github Desktop使用教程
  7. 【openstf】自己的云测平台——mac安装openstf
  8. 刷题——一道全排列的题目(Permutations)
  9. Makefile之patsubst
  10. CEPH集群搭建(CentOS 7)