zoukankan      html  css  js  c++  java
  • newcoder contest 114 B

       记得这是一个组合数卷积的板子题。

        ∑ C(A,i) * C(B,D-i)   =  C(A+B,D)

        然后就直接做了。

    #include<cstdio>
    #include<cctype>
    #include<algorithm>
    #define ll long long
    using namespace std;
    const int maxn=2000000,ha=998244353;
    
    inline void ADD(int &x,int y){ x+=y; if(x>=ha) x-=ha;}
    
    inline int ksm(int x,int y){
    	int an=1;
    	for(;y;y>>=1,x=x*(ll)x%ha) if(y&1) an=an*(ll)x%ha;
    	return an;
    }
    
    int jc[maxn+5],ni[maxn+5];
    int n,T,ans;
    
    inline void init(){
    	jc[0]=1;
    	for(int i=1;i<=maxn;i++) jc[i]=jc[i-1]*(ll)i%ha;
    	ni[maxn]=ksm(jc[maxn],ha-2);
    	for(int i=maxn;i;i--) ni[i-1]=ni[i]*(ll)i%ha;
    }
    
    inline int C(int x,int y){ return jc[x]*(ll)ni[y]%ha*(ll)ni[x-y]%ha;}
    
    int main(){
    	scanf("%d",&n);
    	init();
    	
    	for(int i=1;i<=n;i++) ADD(ans,C(i<<1,i));
    	
    	printf("%d
    ",ans);
    	return 0;
    }
    

      

  • 相关阅读:
    子矩阵
    [Ahoi2008]Meet 紧急集合
    立体图
    CF933B A Determined Cleanup
    CF746G New Roads
    树的重量
    CF519E A and B and Lecture Rooms
    矩阵
    深入浅出乘法逆元
    20180519模拟赛T2——pretty
  • 原文地址:https://www.cnblogs.com/JYYHH/p/9160655.html
Copyright © 2011-2022 走看看