zoukankan      html  css  js  c++  java
  • bzoj3884: 上帝与集合的正确用法 欧拉降幂公式

     

    欧拉降幂公式:http://blog.csdn.net/acdreamers/article/details/8236942

    糖教题解处:http://blog.csdn.net/skywalkert/article/details/43955611

    注:知道欧拉公式是远远不够的,还要知道欧拉降幂公式,因为当指数很大的时候需要用

          然后欧拉降幂公式不要求A,C互质,但是B必须大于等于C的欧拉函数

    吐槽:感觉记忆化搜索影响不大啊,当然肯定是因为太水了

    这样复杂度是O(T*sqrt(p)*logp)

    #include <stdio.h>
    #include <iostream>
    #include <algorithm>
    #include <string.h>
    #include <vector>
    #include <math.h>
    #include <stack>
    #include <map>
    using namespace std;
    typedef long long LL;
    const int N = 11;
    int qpow(int a,int b,int mod){
      int ret=1;
      while(b){
        if(b&1)ret=1ll*ret*a%mod;
        a=1ll*a*a%mod;
        b>>=1;
      }
      return ret;
    }
    int eular(int x){
       int ret=x;
       for(int i=2;i*i<=x;++i){
         if(x%i)continue;
         ret=ret/i*(i-1);
         while(x%i==0)x/=i;
       }
       if(x>1)ret=ret/x*(x-1);
       return ret;
    }
    int f(int x){
      if(x==1)return 0;
      int phi=eular(x);
      return qpow(2,f(phi)+phi,x);
    }
    int main(){  
      int T;
      scanf("%d",&T);
      while(T--){
        int p;
        scanf("%d",&p);
        printf("%d
    ",f(p));
      }
      return 0;
    }
    View Code
  • 相关阅读:
    javascript闭包函数
    取消后续内容执行
    vs安装失败,发生严重错误,错误号:Error 0x80070643
    ref
    深入类的方法
    学习过程中的三个小小程序
    SQL Server 中存储过程的练习
    SQL Server系统存储过程
    SQL-server的事务,视图和索引
    用C#,SQL Server编写的音乐播放软件
  • 原文地址:https://www.cnblogs.com/shuguangzw/p/5697183.html
Copyright © 2011-2022 走看看