洛谷P4139 上帝与集合的正确用法 拓欧
正解:拓展欧拉定理
解题报告:
首先放上拓欧公式?
if ( b ≥ φ(p) ) ab ≡ ab%φ(p)+φ(p)(mod p)
else ab≡ab mod φ(p) (mod p)
首先利用扩展欧拉定理。
- 原式=2(剩余数%φ(p)+φ(p))
- 而 剩余数% φ(p)又可以进行分解,所以这个过程可以用递归实现。
- 注意边界条件:当p=1时,余数自然为0。
然后就最最最不用动脑子的思路啊,我们一路做下去做下去,一直膜膜膜膜膜%,总有一天φ(p)是1了然后此时mod一定是0就可以一路再返回回去,能理解趴?
好滴那就是这样,没了!
然后放个代码(哇我发现!我博客越来越简洁明了没废话了yeah!
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll prime[],ol[],tot;
inline ll read()
{
;;
'))ch=getchar();
;
)+(x<<)+(ch^'),ch=getchar();
return y?x:-x;
}
inline ll poww(ll a,ll b,ll mod)
{
;
while(b)
{
)t=t*a%mod;
a=a*a%mod;
b>>=;
}
return t;
}
void pre()
{
ol[]=;
;i<=;i++)
{
){prime[++tot]=i;ol[i]=i-;}
;j<=tot && i*prime[j]<=;j++)
{
){ol[i*prime[j]]=ol[i]*prime[j];j=tot+;}
);
}
}
}
ll dfs(ll x)
{
);
,ol[x]+dfs(ol[x]),x);
}
int main()
{
ll T=read();pre();
while(T--)printf("%lld\n",dfs(read()));
;
}
(
自打脸说句废话
我觉得这题名字,好可爱啊x
然后题目描述也是,感觉是个很有趣的人出的题目呢
洛谷P4139 上帝与集合的正确用法 拓欧的更多相关文章
- 洛谷 P4139 上帝与集合的正确用法 解题报告
P4139 上帝与集合的正确用法 题目描述 根据一些书上的记载,上帝的一次失败的创世经历是这样的: 第一天, 上帝创造了一个世界的基本元素,称做"元". 第二天, 上帝创造了一个新 ...
- 洛谷P4139 上帝与集合的正确用法 [扩展欧拉定理]
题目传送门 上帝与集合的正确用法 题目描述 根据一些书上的记载,上帝的一次失败的创世经历是这样的: 第一天, 上帝创造了一个世界的基本元素,称做“元”. 第二天, 上帝创造了一个新的元素,称作“α”. ...
- 题解-洛谷P4139 上帝与集合的正确用法
上帝与集合的正确用法 \(T\) 组数据,每次给定 \(p\),求 \[\left(2^{\left(2^{\left(2^{\cdots}\right)}\right)}\right)\bmod p ...
- 洛谷 P4139 上帝与集合的正确用法
题目描述 根据一些书上的记载,上帝的一次失败的创世经历是这样的: 第一天, 上帝创造了一个世界的基本元素,称做“元”. 第二天, 上帝创造了一个新的元素,称作“α”.“α”被定义为“元”构成的集合.容 ...
- [洛谷P4139]上帝与集合的正确用法
题目大意:多次询问,每次给你$p$询问$2^{2^{2^{\dots}}}\bmod p$ 题解:扩展欧拉定理,求出$\varphi(p)$即可.因为$2^{2^{2^{\dots}}}>> ...
- 【洛谷】P4139 上帝与集合的正确用法
题目描述 根据一些书上的记载,上帝的一次失败的创世经历是这样的: 第一天,上帝创造了一个世界的基本元素,称做“元”. 第二天,上帝创造了一个新的元素,称作“α”.“α”被定义为“元”构成的集合.容 ...
- P4139 上帝与集合的正确用法
本题是欧拉定理的应用.我这种蒟蒻当然不知道怎么证明啦! 那么我们就不证明了,来直接看结论: ab≡⎧⎩⎨⎪⎪ab%φ(p)abab%φ(p)+φ(p)gcd(a,p)=1gcd(a,p)≠1,b< ...
- Luogu P4139 上帝与集合的正确用法【扩展欧拉定理】By cellur925
题目传送门 题目中的式子很符合扩展欧拉定理的样子.(如果你还不知扩展欧拉定理,戳).对于那一堆糟心的2,我们只需要递归即可,递归边界是模数为1. 另外,本题中好像必须要用快速乘的样子...否则无法通过 ...
- luogu P4139 上帝与集合的正确用法(扩展欧拉定理)
本蒟蒻现在才知带扩展欧拉定理. 对于任意的\(b\geq\varphi(p)\)有 \(a^b\equiv a^{b\ mod\ \varphi(p)+\varphi(p)}(mod\ p)\) 当\ ...
随机推荐
- flask livereload用法
#coding=utf-8 from flask import Flask from flask_script import Manager app = Flask(__name__) manager ...
- 使用java中的session来记录访问次数
<%@ page import="java.net.CookieHandler" %><%-- Created by IntelliJ IDEA. User: D ...
- Hadoop计算平均值【转】
file1.txt a 1b 2a 3b 3a 5b 7c 3c 5 file2.txt a 1b 7c 5a 1c 3 结果: a 2.2b 4.75c 4.0 代码: package org.ap ...
- MegaCli 使用
安装: wget ftp://rpmfind.net/linux/Mandriva/devel/cooker/x86_64/media/non-free/release/megacli-8.02.21 ...
- 【llinux】yum命令出现Loaded plugins: fastestmirror Determining fastest mirrors
在进行yum 安装的时候.报错了. Loaded plugins: fastestmirror Determining fastest mirrors fastestmirror是yum的一个加速插件 ...
- 《征服C指针》读书笔记
本文同时发布在我的个人博客上,欢迎访问~ www.seekingdream.cn 在读完K&R之后,对C的认识就是指针.数组.网上的人们对指针也有些“敬而远之”的感觉.最近从同学处淘得< ...
- Android Studio 3.1.2 版本包下载
Android Studio 3.1.2 bug 修复版已发布,本次更新修复了一些错误,并改进了某些场景下 lint 审查的速度.详细的修复内容请查看 Android Studio 3.1.2 的发布 ...
- Linux操作系统定时任务系统 Cron 入门
cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业.由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动.关闭这个服务: /sbin/service c ...
- 理解proc目录与linux进程、ps命令、netstat命令的关系
零.proc目录简介 proc目录是虚拟文件系统(VFS)的一种实现,保存了进程信息(pid目录)和一些系统信息. 一.系统的信息 1.cpuinfo和meminfo两个文件 查看CPU和内存相关信息 ...
- Minix中的字符判定ctype.c
minix中关于如何判定一个字符的类型,如大写.小写.数字…… 如果采用传统的方法,如判断一个字母大写的方法: if(c>='A' && c<'Z') return tru ...