• bzoj 1408 [Noi2002]Robot(欧拉函数)


    【题目链接】

      http://www.lydsy.com/JudgeOnline/problem.php?id=1408

    【题意】

        求m的所有约数中,满足可以分解成(奇数个不同素数/偶数个不同素数/其他)的所有的phi之和。

    【思路】

       

        ans1表示目前为止有偶数个奇质因子的欧拉函数的前缀和

        ans2表示目前为止有奇数个奇质因子的欧拉函数的前缀和。

        注意2不是奇质因子,需要去掉。

        第三种可以由m-1减去前两种,减1为去掉1,1不是老师。

    【代码】

     1 #include<cstdio>
     2 #include<cstring> 
     3 using namespace std;
     4 
     5 const int N = 2e3+10;
     6 const int MOD = 10000;
     7 
     8 int pow(int a,int p,int mod)
     9 {
    10     int ans=1;
    11     while(p) {
    12         if(p&1) ans=(ans*a)%mod;
    13         a=(a*a)%mod; p>>=1;
    14     }
    15     return ans;
    16 }
    17 
    18 int ans1,ans2,ans3,n,m,p,e;
    19 
    20 int main()
    21 {
    22     scanf("%d",&n);
    23     m=1;
    24     for(int i=1;i<=n;i++) 
    25     {
    26         scanf("%d%d",&p,&e);
    27         m=(m*pow(p,e,MOD))%MOD;
    28         if(p==2) continue;
    29         int t1=(ans1+ans2*(p-1))%MOD;
    30         int t2=(ans2+(ans1+1)*(p-1))%MOD;
    31         ans1=t1,ans2=t2;
    32     }
    33     ans3=((m-1-ans1-ans2)%MOD+MOD)%MOD;
    34     printf("%d
    %d
    %d
    ",ans1,ans2,ans3);
    35     return 0;
    36 }
  • 相关阅读:
    store.js
    ## $.each() 与.each()的区别
    创建新的option
    js 一个程序运行的时间计算
    HTML5之FileReader的使用(转)
    js 队列
    js 栈(进制转换)
    原生js实现二级联动
    原生js实现三级联动
    工具安装-Mac 卸载python3
  • 原文地址:https://www.cnblogs.com/lidaxin/p/5339871.html
Copyright © 2020-2023  润新知