zoukankan      html  css  js  c++  java
  • 短码练习

    不是变态短码..不是那种1k-紫荆花之恋..

    // cf722E 969B
    #include<cstdio>
    #include<algorithm>
    const int P=1000000007,N=200200;
    typedef long long ll;
    ll p(int a,int e=P-2,ll t=1){for(;e;e>>=1,a=ll(a)*a%P)if(e&1)t=t*a%P;return t;}
    int F[N]={1,1},iF[N],n,m,g,s,f[22][N],c;
    ll C(int n,int m){return ll(F[n])*iF[m]%P*iF[n-m]%P;}
    struct J{int x,y;}Q[N];bool z(J a,J b){return a.x+a.y<b.x+b.y;}
    ll G(J a,J b){return b.x>=a.x&&b.y>=a.y?C(b.x+b.y-a.x-a.y,b.x-a.x):0ll;}
    ll G(J a){return C(n+m-a.x-a.y,n-a.x);}
    int main(){
    	ll i=2,o=0;
    	for(;i<N;++i)
    		F[i]=i*F[i-1]%P;
    	iF[N-1]=p(F[N-1]);
    	for(i=N-1;i;--i)
    		iF[i-1]=iF[i]*i%P;
    	scanf("%d%d%d%d",&n,&m,&g,&c);
    	for(int u,v;i<g;++i)
    		scanf("%d%d",&u,&v),Q[i]=(J){u,v};
    	Q[g]=(J){1,1};std::sort(Q,Q+g+1,z);
    	for(int l=1,*v;l<22;++l){v=f[l];
    		for(i=g;~i;--i){
    			ll z=G(Q[i]);
    			for(int j=i+1;j<=g;++j)
    				z=(z-G(Q[i],Q[j])*v[j])%P+P;
    			i[*f]=(i[*f]+(v[i]=((z-i[*f])%P+P)%P))%P;
    		}o=(o+c*ll(*v))%P,c=(c-1)/2+1;
    	}o=(o+(G(*Q)-**f)%P+P)%P;
    	printf("%lld
    ",o*p(G(*Q))%P);
    	return 0;
    }
    
  • 相关阅读:
    [转]中国诗歌简史
    [转]古典诗词综述
    sqlite元数据
    hihocoder第226周:打表找规律
    理解bleu
    tensorflow代码中的一个bug
    tensorflow中的sequence_loss_by_example
    numpy二分查找
    一道贪心:加括号使算式的值最大
    kafaka可视化工具
  • 原文地址:https://www.cnblogs.com/tmzbot/p/5988757.html
Copyright © 2011-2022 走看看