BZOJ2863: 愤怒的元首
来源:互联网 发布:java中string转byte 编辑:程序博客网 时间:2024/04/29 20:09
很明显这一题就是要求DAG组合数
问了tangjz 他直接甩给我一个公式… 不敢问证明感觉根据块的大小分一下可以搞出来?
有一个公式:
其中
#include<cstdio>#include<iostream>#include<cstring>using namespace std;const int Mod=1000000007;int fact[2000001],fact_[2000001];int Max=2000000;int S[9193991];int ff(int x,int yt){ if(x==2&&yt<=9000000) if(S[yt])return S[yt]; int base=1,res=1,M=x,y=yt; while(y) { if(y&base) y^=base,res=res*1ll*M%Mod; base<<=1; M=M*1ll*M%Mod; } if(x==2&&yt<=9000000) return S[yt]=res; return res;}int A[4001];char c;inline void read(int &a){ a=0;do c=getchar();while(c<'0'||c>'9'); while(c<='9'&&c>='0')a=(a<<3)+(a<<1)+c-'0',c=getchar();}int main(){ int i,j,k; int n,m; read(n); fact[1]=1; fact[0]=fact[1]=fact_[1]=fact_[0]=1; Max=n; for(i=2;i<=Max;i++) fact[i]=fact[i-1]*1ll*i%Mod; fact_[Max]=ff(fact[Max],Mod-2); for(int i=Max-1;i;i--) fact_[i]=fact_[i+1]*(i+1ll)%Mod; int ans=0; A[0]=1; for(int i=1;i<=n;i++) for(int j=1;j<=i;j++) A[i]+=((((j&1?1ll:-1ll)*fact[i]*fact_[i-j]%Mod)*fact_[j]%Mod)*A[i-j]%Mod)*ff(2,j*(i-j))%Mod,A[i]%=Mod; printf("%d\n",(A[n]+Mod)%Mod); return 0;}
0 0
- BZOJ2863: 愤怒的元首
- [bzoj2863]愤怒的元首
- BZOJ2863 愤怒的元首
- [组合 容斥 DP] BZOJ 2863 愤怒的元首
- 元首的愤怒 德英对照版 (By Google)
- bzoj2863图上的DP题
- 元首在帝国大厦的演讲
- 元首名言的中德对照版本
- 空间统计史话:元首的黑科技
- 关于温州出轨最好诠释的视频,元首都苦逼了!
- 愤怒的程序员
- 愤怒的一天
- 愤怒的裸奔
- 无耻的愤怒
- 大学老师的愤怒
- 令人愤怒的北京铁路局
- 午夜的愤怒
- 愤怒的小鸟
- Android PackageManager
- tomcat无法识别maven工程
- linux socket 编程(C语言)
- 使用ssh远程重装centos
- ‘ORA-00904: "AGE": invalid identifier’ The association between double quote and case sensitivity
- BZOJ2863: 愤怒的元首
- ROC曲线
- ASI战AFN有甚么差别
- "围观"设计模式(6)--开闭原则(Open/Closed Principle)
- Android中的动画(AlphaAnimation、RotateAnimation、ScaleAnimation、TranslateAnimation)
- Java实现敏感词过滤
- 支付生成二维码和回调地址
- ASI与AFN的区别
- 中国SSL证书市场份额,沃通WoSign排名第一