BZOJ 3884 上帝与集合的正确用法 欧拉定理

原创 2015年02月26日 11:20:22

题目大意:求2^(2^(2^(2^(2^...)))) mod p的值

SB出题人被各种乱艹系列……

其实是某天脑洞比较大突然想算算这东西= = 然后就发现了这个好玩的性质= =

其实+∞个2看着吓人其实没啥可怕的= =


#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define M 10001000
using namespace std;
int phi[M],prime[1001001],tot;
bool not_prime[M];
int Phi(int x)
{
    int i,re=x;
    for(i=2;i*i<=x;i++)
        if(x%i==0)
        {
            re/=i;re*=i-1;
            while(x%i==0)
                x/=i;
        }
    if(x^1) re/=x,re*=x-1;
    return re;
}
int Quick_Power(long long x,int y,int p)
{
    long long re=1;
    while(y)
    {
        if(y&1) (re*=x)%=p;
        (x*=x)%=p; y>>=1;
    }
    return re;
}
int Solve(int p)
{
    if(p==1) return 0;
    int temp=0;
    while(~p&1) p>>=1,++temp;
    int phi_p=Phi(p);
    int re=Solve(phi_p);
    (re+=phi_p-temp%phi_p)%=phi_p;
    re=Quick_Power(2,re,p)%p;
    return re<<temp;
}
int main()
{
    int T,p;
    for(cin>>T;T;T--)
    {
        scanf("%d",&p);
        printf("%d\n",Solve(p));
    }
    return 0;
}


[BZOJ 3884] 上帝与集合的正确用法【欧拉定理/初等数论】

[Description]求值 [Solution] 不要被无限个2吓到了,这一题有一些有趣的性质可以发掘的。 这里介绍两个解法。· Solution 1我们温习一下欧拉定理: 和它的推广...
  • sinat_27410769
  • sinat_27410769
  • 2015年07月04日 11:13
  • 1570

BZOJ 3884 上帝与集合的正确用法

题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3884题意:求2^2^2^... mod p的值,多组询问。p≤10^7。...
  • skywalkert
  • skywalkert
  • 2015年02月26日 19:15
  • 2654

bzoj3884 上帝与集合的正确用法

欧拉定理
  • sdfzyhx
  • sdfzyhx
  • 2017年05月18日 08:21
  • 120

BZOJ3884 上帝与集合的正确用法(欧拉函数)

【题解】 函数y = 2^x mod p 当p是奇数时,由于 2^φ(p) mod p = 1 ,所以函数会出现循环节长度为φ(p)的循环 当p是偶数时,设 p = 2^k * q,q为奇数,函数会出...
  • cjk_cjk
  • cjk_cjk
  • 2015年06月02日 10:00
  • 293

【BZOJ 3884】 上帝与集合的正确用法|欧拉函数

开始我感觉题目有问题 。。 后来问了下发现题解说的很对 http://blog.csdn.net/popoqqq/article/details/43951401 快速幂写错耽误一...
  • sxb_201
  • sxb_201
  • 2016年04月18日 17:26
  • 535

【脑洞大开】一种神奇的[网络流?]——PoPoQQQ流

来源: PoPoQQQ大爷脑洞一开,就想出一种流进来是a,流出去是ak的边,他称之为“带变压器的边”,然后我们称之为PoPoQQQ流。 来一个应用模型(鬼畜题)(鬼畜题) 题目: 题目...
  • Vmurder
  • Vmurder
  • 2015年03月05日 14:01
  • 3383

BZOJ3884【数论】

/* I will wait for you*/ #include #include #include #include #include #include #include #inc...
  • Lethelody
  • Lethelody
  • 2015年05月05日 08:38
  • 287

BZOJ3884 上帝与集合的正确用法 [欧拉函数]

3884: 上帝与集合的正确用法Time Limit: 5 Sec  Memory Limit: 128 MBSubmit: 2819  Solved: 1264[Submit][Status][Di...
  • lemonoil
  • lemonoil
  • 2017年10月18日 15:04
  • 82

BZOJ 3930 CQOI2015 选数 莫比乌斯反演

题目见 http://pan.baidu.com/s/1o6zajc2 此外不知道H-L #include #include #include #include #includ...
  • PoPoQQQ
  • PoPoQQQ
  • 2015年04月07日 11:16
  • 18654
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:BZOJ 3884 上帝与集合的正确用法 欧拉定理
举报原因:
原因补充:

(最多只允许输入30个字)