zoukankan      html  css  js  c++  java
  • 数学专题测试2

    A.B

      看到$gcd==1$大约是莫比乌斯反演。然后只需要求出来$gcd$至少为$i$的方案数,推一下可以发现是个组合数并且只与$n/i$有关,于是直接分块就可以了。

      然后发现这个东西需要求莫比乌斯函数前缀和,杜教筛即可。

      然而这样是$O(sqrt{n}*k)$的,会T,所以只需要预处理一部分阶乘逆元,然后就可以$O(1)$算出大部分组合数,其余直接$O(k)$暴力即可。

    B. B君的回忆

      题意:给定一个类斐波那契数列$g(n)$,求其嵌套$k$次之后在$N$处的取值。

      可以发现,这个东西在区模意义下是有循环节的,并且打表发现,循环节的长度大约与$p$同级。于是可以用BSGS对于转移矩阵求出这个循环节,这样卡卡常就有60~80了。

      然而这样在极限数据下复杂度可以达到$O(TKsqrt{p})$,在本题肯定过不去。

      于是可以考虑一些性质。

      设$f(a)$表示在模a意义下的循环节,那么有结论:

      1.若a,b互质,那么$f(ab)=lcm(f(a)f(b))$。

      2.若p为质数,那么$f(p^{k})=p^{k-1}*f(k)$。

      第一个比较好理解,第二个可以类比欧拉函数的一些性质,实际上这两个函数也有很多的相似点。

      于是可以将每个模数分解质因数,然后对于每个质数暴力BSGS求出循环节,顺便记忆化一下,然后求出$lcm$,就可以AC了。

    C. sanrd

      大神题,考场上打出来真的挺难的。。。然而暴力还是能AC的

           首先特判$C=0$,然后特判$b=0$,然后化简,中间有一些技巧:

      $c^{2ij}=c^{(i+j)^2-i^2-j^2}$,于是可以将两部分贡献分开,然后化出卷积式。

      另一个技巧是$b*c^{4k}+d*c^{2k}+e$,将其转化为$a*(c^{2k}+y)^2+z$,其中$a,y,z$是可以推出的常数,然后就可以二项式展开。

      然而这题可以数据范围小,时限长,所以直接秦九韶循环展开暴力就可以。考场上自认为大约有六七十分了感觉良好,没想到直接AC了。。。

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 typedef long long LL;
     4 const int mod=1e6+3,N=6e4+5;
     5 inline int read(int x=0,bool f=0,char ch=getchar()){
     6     for(;!isdigit(ch);ch=getchar()) f=ch=='-';
     7     for(; isdigit(ch);ch=getchar()) x=(x<<3)+(x<<1)+(ch^48);
     8     return f?-x:x;
     9 }
    10 int n;
    11 long long a[N],b,c,d,e;
    12 inline LL qpow(LL x,LL y,LL ans=1){
    13     for(;y;y>>=1,x=x*x%mod) if(y&1) ans=ans*x%mod;
    14     return ans;
    15 }
    16 int main(){
    17     n=read(),b=read(),c=read(),d=read(),e=read();
    18     for(int i=0;i<n;++i) a[i]=read();
    19     for(int i=0;i<n;++i){
    20         LL x=(b*qpow(c,4*i)+d*qpow(c,2*i)+e)%mod,X2=x*x%mod,X3=X2*x%mod,
    21         X4=X3*x%mod,X5=X4*x%mod,X6=X5*x%mod,X7=X6*x%mod,X8=X7*x%mod,X9=X8*x%mod,
    22         X10=X9*x%mod,X11=X10*x%mod,X12=X11*x%mod,X13=X12*x%mod,X14=X13*x%mod
    23         ,X15=X14*x%mod,X16=X15*x%mod,X17=X16*x%mod,X18=X17*x%mod,
    24         X19=X18*x%mod,X20=X19*x%mod,X21=X20*x%mod,X22=X21*x%mod,
    25         X23=X22*x%mod,X24=X23*x%mod,X25=X24*x%mod,X26=X25*x%mod,
    26         X27=X26*x%mod,X28=X27*x%mod,X29=X28*x%mod,X30=X29*x%mod,
    27         X31=X30*x%mod,X32=X31*x%mod,X33=X32*x%mod,X34=X33*x%mod,
    28         X35=X34*x%mod,X36=X35*x%mod,X37=X36*x%mod,X38=X37*x%mod,
    29         X39=X38*x%mod,X40=X39*x%mod,X41=X40*x%mod,X42=X41*x%mod,
    30         X43=X42*x%mod,X44=X43*x%mod,X45=X44*x%mod,X46=X45*x%mod,
    31         X47=X46*x%mod,X48=X47*x%mod,X49=X48*x%mod,X50=X49*x%mod,ans=0;
    32         register int j;
    33         for(j=n-1;j>49;j-=50){
    34             ans=ans*X50,ans+=a[j]*X49,ans+=a[j-1]*X48,
    35             ans+=a[j-2]*X47,ans+=a[j-3]*X46,ans+=a[j-4]*X45,
    36             ans+=a[j-5]*X44,ans+=a[j-6]*X43,ans+=a[j-7]*X42,
    37             ans+=a[j-8]*X41,ans+=a[j-9]*X40,ans+=a[j-10]*X39,
    38             ans+=a[j-11]*X38,ans+=a[j-12]*X37,ans+=a[j-13]*X36,
    39             ans+=a[j-14]*X35,ans+=a[j-15]*X34,ans+=a[j-16]*X33,
    40             ans+=a[j-17]*X32,ans+=a[j-18]*X31,ans+=a[j-19]*X30,
    41             ans+=a[j-20]*X29,ans+=a[j-21]*X28,ans+=a[j-22]*X27,
    42             ans+=a[j-23]*X26,ans+=a[j-24]*X25,ans+=a[j-25]*X24,
    43             ans+=a[j-26]*X23,ans+=a[j-27]*X22,ans+=a[j-28]*X21,
    44             ans+=a[j-29]*X20,ans+=a[j-30]*X19,ans+=a[j-31]*X18,
    45             ans+=a[j-32]*X17,ans+=a[j-33]*X16,ans+=a[j-34]*X15,
    46             ans+=a[j-35]*X14,ans+=a[j-36]*X13,ans+=a[j-37]*X12,
    47             ans+=a[j-38]*X11,ans+=a[j-39]*X10,ans+=a[j-40]*X9,
    48             ans+=a[j-41]*X8,ans+=a[j-42]*X7,ans+=a[j-43]*X6,
    49             ans+=a[j-44]*X5,ans+=a[j-45]*X4,ans+=a[j-46]*X3,
    50             ans+=a[j-47]*X2,ans+=a[j-48]*x,ans+=a[j-49],ans%=mod;
    51         }
    52         for(;~j;--j) (ans=ans*x+a[j])%=mod;
    53         printf("%lld
    ",ans%mod);
    54     }
    55     return 0;
    56 }暴力
    ???
  • 相关阅读:
    GC算法 垃圾收集器
    JVM内存结构
    java类的加载机制
    Spring Boot:Web 综合开发
    构建微服务:Spring boot 入门篇
    Spring Boot:Spring Boot 中 Redis 的使用
    Spring Boot:Thymeleaf 使用详解
    Android ActionBar完全解析,使用官方推荐的最佳导航栏(下)
    用ActionBar的ActionProvider的时候报错:cannot be cast to android.view.ActionProvider
    百度图片API
  • 原文地址:https://www.cnblogs.com/hzoi-cbx/p/12150490.html
Copyright © 2011-2022 走看看