zoukankan      html  css  js  c++  java
  • 【欧拉函数】BZOJ4173-数学

    【题目大意】

    【思路】

    基本是popoqqq大爷的题解,稍微添加了几句自己的注释,方便理解

    同理,如果n%k+m%k<k等价于0

    =∑([(n+m)/k]-[n/k]-[m/k])×φ(k) ……因为k不满足条件的时候前面为0

    ……其实右边两个∑也是k=1..(m+n),但是k>n的时候,[n/k]显然为0,m同理。

    【错误点XXXXD】

    ……程序烧杯,po也是烧杯。不要忘了ll,不要忘了MOD……

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<algorithm>
     4 #include<cstring>
     5 #define MOD 998244353
     6 using namespace std;
     7 typedef long long ll;
     8 
     9 ll phi(ll x)
    10 {
    11     ll ret=x;
    12     for (ll i=2;i*i<=x;i++)
    13     {
    14         if (x%i==0)
    15         {
    16             ret-=ret/i;
    17             while (x%i==0) x/=i;
    18         }
    19     }
    20     if (x>1) ret-=ret/x;
    21     return ret%MOD;
    22 }
    23 
    24 void solve()
    25 {
    26     ll n,m;
    27     scanf("%lld%lld",&n,&m);
    28     printf("%lld",(phi(n)%MOD)*(phi(m)%MOD)%MOD*(n%MOD)%MOD*(m%MOD)%MOD); 
    29 }
    30 
    31 int main()
    32 {
    33     solve();
    34     return 0;
    35 }

              

  • 相关阅读:
    Redis主从复制
    Redis发布订阅
    Redis持久化
    初探redis.config
    java连接Linux服务器问题
    Redis常见类型及API
    Redis安装
    Nosql
    JMM
    SpringSecurity
  • 原文地址:https://www.cnblogs.com/iiyiyi/p/5918373.html
Copyright © 2011-2022 走看看