各种傻逼手滑合集

调调调代码

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 阅读(...) 评论(...) 编辑 收藏