广义欧拉降幂(欧拉定理)——bzoj3884,fzu1759

广义欧拉降幂对于狭义欧拉降幂任然适用
https://blog.csdn.net/qq_37632935/article/details/81264965?tdsourcetag=s_pctim_aiomsg
bzoj388
#include<bits/stdc++.h>
using namespace std;
#define ll long long ll Pow(ll a,ll b,ll p){
ll res=;
while(b){
if(b%)
res=res*a%p;
b>>=;a=a*a%p;
}
return res;
}
ll phi(ll x){
ll res=x,tmp=x;
for(ll i=;i*i<=tmp;i++)
if(tmp%i==){
res=res*(i-)/i;
while(tmp%i==)tmp/=i;
}
if(tmp>)
res=res*(tmp-)/tmp;
return res;
} ll f(ll p){
if(p==)return ;
ll q=phi(p);
return Pow(,q+f(q),p);
} int main(){
int t;ll p;cin>>t;
while(t--){
cin>>p;
cout<<f(p)<<'\n';
}
}
fzu1759 注意在计算phi时要用先除再乘,防止爆精度
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
#define ll long long
#define maxn 1000005
char b[maxn];
ll A,C,B; ll phi(ll x){
ll res=x,tmp=x;
for(ll i=;i*i<=tmp;i++)
if(tmp%i==){
res=res-res/i;
while(tmp%i==)
tmp/=i;
}
if(tmp>)
res=res-res/tmp;
return res;
}
ll Pow(ll a,ll b,ll p){
ll res=;
while(b){
if(b%)
res=res*a%p;
b>>=;a=a*a%p;
}
return res;
} int main(){
while(cin>>A){
scanf("%s",b);
cin>>C;
ll p=phi(C);
int len=strlen(b);
B=;
for(int i=;i<len;i++)
B=(B*+b[i]-'')%p;
cout<<Pow(A,B,C)<<'\n';
}
}
广义欧拉降幂(欧拉定理)——bzoj3884,fzu1759的更多相关文章
- ACM-数论-广义欧拉降幂
https://www.cnblogs.com/31415926535x/p/11447033.html 曾今一时的懒,造就今日的泪 记得半年前去武大参加的省赛,当时的A题就是一个广义欧拉降幂的板子题 ...
- Power Tower(广义欧拉降幂)
题意:https://codeforc.es/contest/906/problem/D 计算区间的: ai ^ ai+1 ^ ai+2.......ar . 思路: 广义欧拉降幂: 注意是自下而上递 ...
- Codeforces Round #454 D. Power Tower (广义欧拉降幂)
D. Power Tower time limit per test 4.5 seconds memory limit per test 256 megabytes input standard in ...
- The Preliminary Contest for ICPC Asia Nanjing 2019 B. super_log (广义欧拉降幂)
In Complexity theory, some functions are nearly O(1)O(1), but it is greater then O(1)O(1). For examp ...
- BZOJ 3884——欧拉降幂和广义欧拉降幂
理论部分 欧拉定理:若 $a,n$ 为正整数,且 $a,n$ 互质,则 $a^{\varphi (n)} \equiv 1(mod \ n)$. 降幂公式: $$a^b=\begin{cases}a^ ...
- Codeforces Round #454 (Div. 1) CodeForces 906D Power Tower (欧拉降幂)
题目链接:http://codeforces.com/contest/906/problem/D 题目大意:给定n个整数w[1],w[2],……,w[n],和一个数m,然后有q个询问,每个询问给出一个 ...
- 2018牛客网暑期ACM多校训练营(第四场) A - Ternary String - [欧拉降幂公式][扩展欧拉定理]
题目链接:https://www.nowcoder.com/acm/contest/142/A 题目描述 A ternary string is a sequence of digits, where ...
- 欧拉函数&欧拉定理&降幂 总结
欧拉函数&欧拉定理&降幂 总结 标签:数学方法--数论 阅读体验:https://zybuluo.com/Junlier/note/1300214 这年头不总结一下是真的容易忘,老了老 ...
- bzoj3884: 上帝与集合的正确用法 欧拉降幂公式
欧拉降幂公式:http://blog.csdn.net/acdreamers/article/details/8236942 糖教题解处:http://blog.csdn.net/skywalkert ...
随机推荐
- dubbo源码学习(四):暴露服务的过程
dubbo采用的nio异步的通信,通信协议默认为 netty,当然也可以选择 mina,grizzy.在服务端(provider)在启动时主要是开启netty监听,在zookeeper上注册服务节点, ...
- 微信小程序开发简易计算器改进版
微信小程序开发计算器有多种方法,但是大部分代码比较复杂.不容易理解.本案例进行了改进,主要是组件bindtap属性绑定的自定义函数clickBtn(),采用了switch语句,使得代码结构更加清晰,学 ...
- js 实现图片懒加载
搬运自其他大神,因为找不到链接了就没放,找到了补上. 个人情况:页面超过一屏,下方是大量图片数据(后台传来的html数据) ,想做到一开始不加载下方图片,滚动到进入可视区再加载图片. html:(需先 ...
- ElementUI的Loading组件 —— 想实现在请求后台数据之前开启Loading组件,请求成功或失败之后,关闭Loading组件
我在实际项目开发中,遇到了这个需求,记录一下~~~~~~ 在ElementUI官网上有几种实现Loading的方法,但官网上是在一个方法里写了开启与关闭组件,所以可以根据官网的实现方法进行一个封装,便 ...
- 阿里云重磅推出物联网安全运营中心Link SOC
阿里云IoT自主研发了新一代物联网安全平台Link Security,面向IoT设备全生命周期构建了一整套全链路多层次的安全防御体系,IoT物联网平台的业务在不同层面可以按需集成安全能力. 1.首先在 ...
- FontFamily 和Font 的区别
GDI+ 将字样相同但字形不同的字体分组为字体系列.例如,下面是同一个字样(Arial),不同的字形 : ----------------------------------------------- ...
- sqoop一些常用命令及参数
常用命令列举 这里给大家列出来了一部分Sqoop操作时的常用参数,以供参考,需要深入学习的可以参看对应类的源代码. 序号 命令 类 说明 1 import ImportTool 将数据导入到集群 2 ...
- spark在collect收集数据的时候出现outOfMemoryError:java heap space
spark的collect是action算子,所有最后会以数组的形式返回给driver端,当数据太大的时候就会出现堆内存溢出.OutofMemoryError:java heap space. 在sp ...
- MTT:任意模数NTT
MTT:任意模数NTT 概述 有时我们用FFT处理的数据很大,而模数可以分解为\(a\cdot 2^k+1\)的形式.次数用FFT精度不够,用NTT又找不到足够大的模数,于是MTT就应运而生了. MT ...
- NX二次开发-UFUN重命名图纸页UF_DRAW_rename_drawing
#include <uf.h> #include <uf_draw.h> #include <uf_drf.h> #include <uf_obj.h> ...