建议调大时空限制

P6097 【模板】子集卷积

orz
by SmokedFish @ 2020-06-19 20:32:20


orz
by iiawaKL @ 2020-06-19 20:33:00


orz
by Belarus @ 2020-06-19 20:33:10


Orz
by Aw顿顿 @ 2020-06-19 20:33:12


stO
by lndjy @ 2020-06-19 20:33:19


丢一下代码,感觉我应该没有什么写假或者常数写大的地方?这个代码还是我卡过常的/fad ```cpp #include<cctype> #include<cstdio> using namespace std; inline int readint(){ int x=0; bool f=0; char c=getchar(); while(!isdigit(c)&&c!='-') c=getchar(); if(c=='-'){ f=1; c=getchar(); } while(isdigit(c)){ x=x*10+c-'0'; c=getchar(); } return f?-x:x; } const int maxn=20; const int mod=1e9+9; void add(int& a,int b){ a+=b; if(a>=mod) a-=mod; } void FWT(int* f,int n,bool flag){ for(int i=1;i<n;i*=2) for(int j=0;j<n;j+=i*2) for(int k=j;k<j+i;k++) add(f[k+i],flag?f[k]:mod-f[k]); } int n,cnt[(1<<maxn)+5]; int a[maxn+5][(1<<maxn)+5],b[maxn+5][(1<<maxn)+5],c[maxn+5][(1<<maxn)+5]; int main(){ #ifdef LOCAL freopen("in.txt","r",stdin); freopen("out.txt","w",stdout); #endif n=readint(); for(int i=1;i<(1<<n);i++) cnt[i]=cnt[i^(i&-i)]+1; for(int i=0;i<(1<<n);i++) a[cnt[i]][i]=readint(); for(int i=0;i<(1<<n);i++) b[cnt[i]][i]=readint(); for(int i=0;i<=n;i++){ FWT(a[i],1<<n,1); FWT(b[i],1<<n,1); } for(int i=0;i<=n;i++) for(int j=0;j<(1<<n);j++) for(int k=0;k<=i;k++) add(c[i][j],1ll*a[k][j]*b[i-k][j]%mod); for(int i=0;i<=n;i++) FWT(c[i],1<<n,0); for(int i=0;i<(1<<n);i++) printf("%d ",c[cnt[i]][i]); printf("\n"); return 0; } ```
by FZzzz @ 2020-06-19 20:33:33


???这都要假?
by FZzzz @ 2020-06-19 20:33:46


这题五个点,我感觉单点开五六秒应该不过分?
by FZzzz @ 2020-06-19 20:34:12


@[一扶苏一](/user/65363)
by FZzzz @ 2020-06-19 20:34:30


@[Fee_cle6418](/user/42156) 出题人来决断一下?
by 一扶苏一 @ 2020-06-19 20:44:50


| 下一页