各种傻逼手滑合集

调调调代码

memset(F,0,sizeof(f));
for(i=0;i<=mk;i++) ans=(ans+f[ln][i]);
while(T--) {
	if(ans==0x3f3f3f3f) puts("-1 -1");
	else printf("%d %d",ans,-1);
}
for(k=2;k<=len;k<<=2)for(t=k>>1,i=0;i<len;i+=k)for(j=i;j<i+t;j++) {
	if(flg==1) a[j+t]+=a[j]; else a[j+t]-=a[j];
}
void ntt(ll *a,int len,int flg) {
	int i,j,k,t;
	ll w,wn,tmp;
	for(i=k=0;i<len;i++) {
		if(i>k) swap(a[i],a[k]);
		for(j=len>>1;(k^=j)<j;j>>=1) ;
	}
	for(k=2;k<=len;k<<=1) {
		t=k>>1; wn=qp(3,(mod-1)/k);
		if(flg==-1) wn=INV(wn);
		for(i=0;i<len;i++) {
			w=1;
			for(j=i;j<i+t;j++) {
				tmp=a[j+t]*w%mod; a[j+t]=(a[j]-tmp)%mod; a[j]=(a[j]+tmp)%mod; w=w*wn%mod;
			}
		}
	}
	if(flg==-1) for(tmp=INV(len),i=0;i<len;i++) a[i]=a[i]*tmp%mod;
}
int len=1;
	while(len<=(m<<1)) len<<=1;
	ntt(A,len,1); ntt(B,len,1);
	for(i=0;i<len;i++) C[i]=A[i]*B[i]%mod;
	ntt(C,len,-1);
	
	/*int j;
	for(i=0;i<=m;i++) {
		for(j=0;j<=m;j++) {
			C[i+j]=(C[i+j]+A[i]*B[j])%mod;
		}
	}*/
//【NOI2018】你的名字
int i;
for(i=1;i<=n;i++) S.insert(w1[i]-'0',i);
    while(j<=mid&&k<=r) {
        if(X(id[j]) < X(id[k])) tmp[i++]=id[j++];
        else tmp[i++]=id[k++];
    }
    while(j<=mid) tmp[i++]=id[j++];
    while(k<=r) tmp[i++]=id[k++];
    return ;
ans=ll(a[1].a)*((q-bmx)*(r-cmx));

不更了,太弱了

posted @ 2018-12-22 10:22  fcwww  阅读(584)  评论(0编辑  收藏  举报