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