链接 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;
}

牛客ACM赛 B [小a的旅行计划 ]的更多相关文章

  1. 牛客ACM赛 C 区区区间间间

    链接 C 区区区间间间 给定长度为\(n\)序列,求\[\sum_{i=1}^{n} \sum_{j=i}^{n} max-min\] 其中\(max\),\(min\)为区间最大,最小值,\(n\l ...

  2. 牛客小白月赛13-J小A的数学题 (莫比乌斯反演)

    链接:https://ac.nowcoder.com/acm/contest/549/J来源:牛客网 题目描述 小A最近开始研究数论题了,这一次他随手写出来一个式子,∑ni=1∑mj=1gcd(i,j ...

  3. 牛客小白月赛13 小A的回文串(Manacher)

    链接:https://ac.nowcoder.com/acm/contest/549/B来源:牛客网 题目描述 小A非常喜欢回文串,当然我们都知道回文串这种情况是非常特殊的.所以小A只想知道给定的一个 ...

  4. 牛客小白月赛13 小A的最短路(lca+RMQ)

    链接:https://ac.nowcoder.com/acm/contest/549/F来源:牛客网 题目描述 小A这次来到一个景区去旅游,景区里面有N个景点,景点之间有N-1条路径.小A从当前的一个 ...

  5. 牛客练习赛48 C 小w的糖果 (数学,多项式,差分)

    牛客练习赛48 C 小w的糖果 (数学,多项式) 链接:https://ac.nowcoder.com/acm/contest/923/C来源:牛客网 题目描述 小w和他的两位队友teito.toki ...

  6. 牛客练习赛48 A· 小w的a+b问题 (贪心,构造,二进制)

    牛客练习赛48 A· 小w的a+b问题 链接:https://ac.nowcoder.com/acm/contest/923/A来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C ...

  7. 牛客-小a的旅行计划 + 数学推导

    小a的旅行计划 题意: 小a终于放假了,它想在假期中去一些地方游玩,现在有N个景点,编号为,同时小b也想出去游玩.由于一些特殊♂原因,他们的旅行计划必须满足一些条件 首先,他们可以从这N个景点中任意选 ...

  8. 牛客小白月赛13 小A买彩票 (记忆化搜索)

    链接:https://ac.nowcoder.com/acm/contest/549/C来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言52428 ...

  9. 牛客小白月赛13 小A的柱状图(单调栈)

    链接:https://ac.nowcoder.com/acm/contest/549/H来源:牛客网 题目描述 柱状图是有一些宽度相等的矩形下端对齐以后横向排列的图形,但是小A的柱状图却不是一个规范的 ...

随机推荐

  1. Day02 结构类型

    1.结构类型是值类型  (类是引用类型) 2.结构中也可以像类一样,定义 字段  属性  方法  但是不能给字段赋初始值 3.结构的构造方法中,必须为所有的字段赋值 4.不能为结构显示定义无参数的构造 ...

  2. Linux双网卡绑定和解除

    转载双网卡绑定和解除  一定要在服务管理中关闭NetworkManager服务并禁用自动启动,因为NetworkManager服务是实时生效的,一旦设置错,管理员就得回到机房接显示器配置网络连接. 以 ...

  3. duration of lease 1 0.5 0.875 DHCP 租借时间 续租时间 重新绑定时间

    w

  4. a daemon 守护进程

    w Cron and Crontab usage and exampleshttps://www.pantz.org/software/cron/croninfo.html

  5. 001-spring boot概述与课程概要

    一.Spring Boot介绍 Spring Boot的目的在于创建和启动新的基于spring框架的项目.Spring boot会选择最适合的Spring 子项目和第三方开源库进行整合.大部分Spri ...

  6. 011-Spring Boot 运行流程分析SpringApplication.run

    一.程序入口 1.1.静态方法 //直接调用run方法 ConfigurableApplicationContext context = SpringApplication.run(App.class ...

  7. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_01 File类_5_File类获取功能的方法

    获取的方法 GetAbsolutepath 传递一个相对路径进去,查看输出的结果 输出的还是绝对的路径 getPath 获取的就是构造方法中传递的路径,可以传递绝对路径也可以传递相对路径 实际上toS ...

  8. C++笔记(5)——浮点数的比较

    判断是否相等 因为一个浮点数的存储并不总是精确的,例如在经过大量计算之后可能会将3.14保存为3.1400000000001或者3.1439999999999,这时候如果直接用==来比较这两个数的话会 ...

  9. 实现atoi

    1. 去掉首位空格 2. 判断首位是否有正负号 3. 判断各位是否是0~9,有其他字符直接返回当前结果   public class Solution { public int atoi(String ...

  10. 编码规范(code style guide)

    1. Javascript Google: https://google.github.io/styleguide/jsguide.html Airbnb:https://github.com/air ...