zoukankan      html  css  js  c++  java
  • BZOJ

    题目链接

    FWT的板子题,思想不是很好理解,但代码还是非常好写的。

     1 #include<bits/stdc++.h>
     2 typedef long long ll;
     3 const ll mod=1e9+7,inv2=mod/2+1,N=2e5+10;
     4 void fwt(ll* a,int n,int f) {
     5     for(int d=1; d<n; d<<=1)
     6         for(int i=0; i<n; i+=d<<1)
     7             for(int j=0; j<d; ++j) {
     8                 ll x=a[i+j],y=a[i+j+d];
     9                 a[i+j]=(x+y)%mod,a[i+j+d]=(x-y)%mod;
    10                 if(!~f)a[i+j]=a[i+j]*inv2%mod,a[i+j+d]=a[i+j+d]*inv2%mod;
    11             }
    12 }
    13 ll Pow(ll x,ll p) {ll ret=1; for(; p; x=x*x%mod,p>>=1)if(p&1)ret=ret*x%mod; return ret;}
    14 int n,m,pri[N];
    15 ll a[N];
    16 
    17 int main() {
    18     for(int i=2; i<N; ++i)for(int j=2; i*j<N; ++j)pri[i*j]=1;
    19     while(~scanf("%d%d",&n,&m)) {
    20         int n2=1;
    21         for(; n2<=m; n2<<=1);
    22         for(int i=0; i<n2; ++i)a[i]=0;
    23         for(int i=2; i<=m; ++i)if(!pri[i])a[i]=1;
    24         fwt(a,n2,1);
    25         for(int i=0; i<n2; ++i)a[i]=Pow(a[i],n);
    26         fwt(a,n2,-1);
    27         printf("%lld
    ",(a[0]+mod)%mod);
    28     }
    29     return 0;
    30 }
  • 相关阅读:
    docker 常用命令
    docker 部署安装
    Dockerfile
    Docker挂载本地目录
    es的基本理论与简单操作
    第一个gradle工程
    记录下自己git命令
    flink 自定义 mysql source
    flink kafka source
    flink file source
  • 原文地址:https://www.cnblogs.com/asdfsag/p/10286097.html
Copyright © 2011-2022 走看看