这个题的指数太大了,因此要考虑用降幂公式进行降幂

记f(p) = 2^2^2... % p

f(p) = 2^(2^2^2...%phi(p) + phi(p)) % p = 2^(f(phi(p)) + phi(p)) % p

到这里我们得到了一个递推方程,边界f(1) = 0

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
typedef long long int64;
int64 MOD = 1e9 + 6;
char str[200007];
int64 mod_pow(int64 x,int64 n){int64 ans = 1;while(n){if(n & 1){ans  = (ans * x) % (MOD + 1);}x = (x * x) % (MOD + 1);n >>= 1;}return ans % (MOD + 1);
}
int main(){while(   cin>>str) {int len = strlen(str);int64 mod = 0;for(int i = 0; i < len;i++){mod *= 10;mod += str[i] - '0';mod %= MOD;}mod = (mod - 1)%MOD;printf("%lld\n",mod_pow(2,mod + MOD) );    }return 0;
}

Summer Training day4上帝与集合的正确用法 欧拉函数+降幂公式相关推荐

  1. 3884: 上帝与集合的正确用法 欧拉函数+降幂公式

    Orz题解 降幂公式:a^x ≡a^(x modϕ(p)+ϕ(p)) (mod p) #include<iostream> #include<cstdio> #include& ...

  2. BZOJ3884上帝与集合的正确用法-欧拉函数

    刚开始我想的是欧拉降幂,可是觉得复杂度还是挺高的就去找了一下题解. 思路大方向没有问题,仍然是使用欧拉函数降低指数然后递归处理.但是不是简单的使用欧拉降幂而是应该对模数p稍微处理一下.因为底数已经确定 ...

  3. BZOJ 3884: 上帝与集合的正确用法 欧拉降幂

    根据一些书上的记载,上帝的一次失败的创世经历是这样的: 第一天, 上帝创造了一个世界的基本元素,称做"元". 第二天, 上帝创造了一个新的元素,称作"α".&q ...

  4. 3884: 上帝与集合的正确用法 —— 欧拉降幂

    Description 根据一些书上的记载,上帝的一次失败的创世经历是这样的: 第一天, 上帝创造了一个世界的基本元素,称做"元". 第二天, 上帝创造了一个新的元素,称作&quo ...

  5. bzoj 3884: 上帝与集合的正确用法(欧拉函数)

    3884: 上帝与集合的正确用法 Time Limit: 5 Sec  Memory Limit: 128 MB Submit: 2574  Solved: 1151 [Submit][Status] ...

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

    再次仰望高端玩家Po姐 3884: 上帝与集合的正确用法 Time Limit: 5 Sec Memory Limit: 128 MB Submit: 772 Solved: 361 [Submit] ...

  7. [数论]上帝与集合的正确用法

    题目传送门:https://www.luogu.org/problemnew/show/P4139 题目描述 根据一些书上的记载,上帝的一次失败的创世经历是这样的: 第一天, 上帝创造了一个世界的基本 ...

  8. 【洛谷】P4139 上帝与集合的正确用法

    题目描述 根据一些书上的记载,上帝的一次失败的创世经历是这样的: 第一天,上帝创造了一个世界的基本元素,称做"元". 第二天,上帝创造了一个新的元素,称作"α" ...

  9. bzoj 3884 上帝与集合的正确用法 扩展欧拉定理

    Description 根据一些书上的记载,上帝的一次失败的创世经历是这样的: 第一天, 上帝创造了一个世界的基本元素,称做"元". 第二天, 上帝创造了一个新的元素,称作&quo ...

最新文章

  1. 网络集中投射了全部安全问题
  2. Google Play应用描述格式
  3. pytorch attention 注意力
  4. 机器学习中的常见问题—损失函数
  5. 利用机器学习进行DNS隐蔽通道检测——数据收集,利用iodine进行DNS隐蔽通道样本收集...
  6. Vue学习01-v-on事件修饰符
  7. 35岁的程序员正在消失?No,我认识了一个50岁的程序员!
  8. python3 实现 A+B Problem(百练OJ:1000)
  9. gradle工作流程
  10. 前端工程师:现在是最糟糕的时代,也是最好的时代
  11. SLAM基础_从零开始一起学习SLAM | 为啥需要李群与李代数?
  12. SocksCapV2+Socks2HTTP
  13. 获取汉字拼音首字母方法
  14. Swift5实现ios后台播放语音,腾讯音视频通话后台播放来电铃声
  15. 我的挣扎 与 TBtools 的开发
  16. 2022年10大让人惊艳的数据可视化工具,BAT和字节都在用
  17. linux补齐命令,Linux中10个有用的命令行补齐命令
  18. 汽车制动盘的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  19. Errors were encountered while preparing your device for development. Please check the Devices and Si
  20. python字符串如何交叉_Python-两个字符串的交集

热门文章

  1. mysql innodb 多线程插入_mysql innodb 并发插入问题,包大量死锁错误
  2. linux配置文件引用时间,linux时间设置、screen使用、命令分类、hash作用、命令引用及history命令...
  3. 算法设计与分析——递归与分治策略——最接近点对问题
  4. 数据结构——图-迪杰斯特拉算法
  5. idea报错Class not found (在target中没有生成对应的class文件)
  6. [MyBatisPlus]代码生成器
  7. 高等数学下-赵立军-北京大学出版社-题解-练习8.3
  8. [蓝桥杯2016初赛]凑算式-dfs,next_permutation
  9. [蓝桥杯2019初赛]年号字串-数论+模拟
  10. python帮助系统函数_【Python】【基础知识】【内置函数】【help的使用方法】