zoukankan      html  css  js  c++  java
  • 【UR #5】怎样跑得更快

    SOL:

      vfk说的很详细,就不说了。

      传送门

    #include<bits/stdc++.h>
    #define mo 998244353
    #define LL long long
    #define int LL
    inline LL qsm(LL x,LL y=mo-2){
        static LL anw;
        for (anw=1,x%=mo;y;y>>=1,x=x*x%mo) if (y&1) anw=anw*x%mo;
        return anw;
    }
    using namespace std;
    #define sight(x) ('0'<=x&&x<='9')
    #define Tap template <class T>
    Tap inline void read(T &x){
        static char c;
        for (c=getchar();!sight(c);c=getchar());
        for (x=0;sight(c);c=getchar())x=x*10+c-48;
    }
    void write(int x){if (x<10) {putchar('0'+x); return;} write(x/10); putchar('0'+x%10);}
    inline void writeln(int x){ if (x<0) putchar('-'),x*=-1; write(x); putchar('
    '); }
    inline void writel(int x){ if (x<0) putchar('-'),x*=-1; write(x); putchar(' '); }
    #define N 100007 
    inline void Mo(LL &x) {
        if (x<0) x=x+mo;
    }
    int n,c,d,q;
    LL f[N],dp[N],b[N];
    void rr() {
        for (int i=1;i<=n;i++) read(b[i]),b[i]=b[i]*dp[i]%mo;
            for (int i=1;i<=n;i++)
             for (int j=2*i;j<=n;j+=i) b[j]-=b[i],Mo(b[j]);
            for (int i=1;i<=n;i++) if (b[i]!=0&&f[i]==0){
             puts("-1"); return; }else {
                 b[i]=b[i]*f[i]%mo;
             }
            for (int i=n;i;i--)
             for (int j=2*i;j<=n;j+=i)
              b[i]-=b[j],Mo(b[i]);
            for (int i=1;i<=n;i++) writel(b[i]=b[i]*dp[i]%mo); putchar(10);
    }
    signed main () {
    //    freopen("a.in","r",stdin);
    //    freopen("a.txt","w",stdout);
        read(n); read(c); read(d); read(q);
        c%=mo-1; d%=mo-1; c=c-d;
        for (int i=1;i<=n;i++) { f[i]=qsm(i,(LL)mo-1+c); assert(0<=f[i]&&f[i]<mo);}
        for (int i=1;i<=n;i++) 
         for (int j=2*i;j<=n;j+=i)
          f[j]-=f[i],Mo(f[j]);
    //    for (int i=1;i<=n;i++) writel(f[i]); putchar(10);
        for (int i=1;i<=n;i++) {
         f[i]=qsm(f[i]),dp[i]=qsm(i,d),dp[i]=qsm(dp[i]); 
         assert(0<=dp[i]&&dp[i]<mo);
         }
    //    for (int i=1;i<=n;i++) writel(f[i]);
        while (q--) rr();
        return 0;
    }
  • 相关阅读:
    MySQL Unknown table engine 'FEDERATED''
    Meta http-equiv属性与HTTP头的Expires中(Cache-control)详解
    EChart 标题 title 样式,x轴、y轴坐标显示,调整图表位置等
    手机端个人信息模板
    <c:forEach>, <c:forTokens> 标签
    html select 可输入 可编辑
    js写评价的星星
    指数映射
    刚体转动的稳定性
    物理引擎中的刚体转动2
  • 原文地址:https://www.cnblogs.com/rrsb/p/8909398.html
Copyright © 2011-2022 走看看