2019ICPC网赛南京站B题 super_log(欧拉降幂

https://nanti.jisuanke.com/t/41299

题意:让算a^(a^(a^(...))),一共b个a, (mod p)的结果。

思路:这是个幂塔函数,用欧拉降幂公式递归求解。

#include<bits/stdc++.h>
#define ll long long
using namespace std;
map<int,int> euler;
ll a,b,mod;
int phi(int n)
{
    int now=n;
    int ret=n;
    if(euler.count(now)) return euler[now];
    for(int i=2;i<=sqrt(n);i++)
    {
        if(n%i==0)
        {
            ret=ret/i*(i-1);
            while(n%i==0)
                n/=i;
        }
    }
    if(n>1)
        ret=ret/n*(n-1);
    euler[now]=ret;
    return ret;
}
ll MOD(ll n,int mod)
{
    return n<mod?n:(n%mod+mod);
}
ll quick_mod(ll base,ll p,int mod)
{
    ll ret=1;
    do{
        if(p&1)
            ret=MOD(base*ret,mod);
        base=MOD(base*base,mod);
    }while(p>>=1);
    return ret;
}
ll solve(int l,int r,int mod)
{
    if(l==r||mod==1) return MOD(a,mod);
    return quick_mod(a,solve(l+1,r,phi(mod)),mod);
}
int main()
{
    int T;
    scanf("%d",&T);
    while(T--){
    	scanf("%lld%lld%lld",&a,&b,&mod);
    	if(a==1||b==0){
    		printf("%d\n",1%mod);
    		continue;
		}
		if(b==1){
			printf("%d\n",a%mod);
			continue;
		}
        ll ans=solve(1,b,mod)%mod;
        printf("%lld\n",ans);
	}
}

原文地址:https://www.cnblogs.com/wzgg/p/11495107.html

时间: 2024-07-30 16:57:10

2019ICPC网赛南京站B题 super_log(欧拉降幂的相关文章

2018ACM-ICPC亚洲区域赛南京站I题Magic Potion(网络流)

http://codeforces.com/gym/101981/attachments 题意:有n个英雄,m个敌人,k瓶药剂,给出每个英雄可以消灭的敌人的编号.每个英雄只能消灭一个敌人,但每个英雄只能消灭一个敌人.现在有药剂,英雄喝了之后可以多消灭一个敌人,但每个英雄只能喝一瓶,问最多能消灭多少个敌人. 下午在实验室队内自己开训练,和JC大佬那队一起开的,当时JC大佬他们队开的J题,没有看I题,当我们队AC之后JC大佬才看了I题,听到他们说,这题就差直接把网络流三个字写在题目里了.确实非常明显

2013 ACM-ICPC亚洲区域赛南京站C题 题解 轮廓线DP

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4804 题目大意 给你一个 \(n \times m\) 的矩形区域.你需要用 \(1 \times 1\) 和 \(1 \times 2\) 的砖块铺满这个区域,且满足如下要求: 所有的砖块可以竖着放或横着放: 砖角要放在格点上: \(1 \times 1\) 的砖不能少于 \(C\) 块也不能多于 \(D\) 块, \(1 \times 2\) 的砖没有数量限制. 有些方格在一开始就已经被填充了,

super_log (广义欧拉降幂)(2019南京网络赛)

题目: In Complexity theory, some functions are nearly O(1)O(1), but it is greater then O(1)O(1). For example, the complexity of a typical disjoint set is O(nα(n))O(nα(n)). Here α(n)α(n) is Inverse Ackermann Function, which growth speed is very slow. So

POJ 3358 Period of an Infinite Binary Expansion( 数论好题 + 欧拉定理 + 欧拉函数 )

POJ 3358 Period of an Infinite Binary Expansion( 数论好题 + 欧拉定理 + 欧拉函数 ) #include <cstdio> #include <cstring> #include <algorithm> #include <algorithm> using namespace std; typedef long long LL; LL fac[ 100000 ], pf; LL gcd( LL a, LL

洛谷P3601签到题(欧拉函数)

题目背景 这是一道签到题! 建议做题之前仔细阅读数据范围! 题目描述 我们定义一个函数:qiandao(x)为小于等于x的数中与x不互质的数的个数. 这题作为签到题,给出l和r,要求求. 输入输出格式 输入格式: 一行两个整数,l.r. 输出格式: 一行一个整数表示答案. 输入输出样例 输入样例#1: 233 2333 输出样例#1: 1056499 输入样例#2: 2333333333 2333666666 输出样例#2: 153096296 说明 对于30%的数据,. 对于60%的数据,.

ICPC2019 亚洲区域赛 南京站

蒟蒻终于打完了人生的第一场ICPC了. 终榜去星后rank36,AG,和AU差几十罚时了. 虽有遗憾但总体也是正常发挥了. 不愿再去对比赛做什么回顾,甚至很不愿去想.很多题已经在能力之外,即便是平常熟练的东西码量也些大就跪了吧. 希望能不忘初心 希望能向第一次走进这个世界那样走下去 希望能守护这份热忱与挚爱 希望我们能一直走下去 原文地址:https://www.cnblogs.com/mollnn/p/11749139.html

[欧拉降幂][2019南京网络赛B]super_log

题意:输入a,b,p,求(底数a的右上角有b-1个a) 思路: 广义欧拉定理: AC代码: #include<bits/stdc++.h> typedef long long ll; using namespace std; ll a,b,m; ll vis[1000005]; ll prime[1000005],num=0; ll phi[1000005]; void getphi(ll n=1000000){ phi[1]=1; for(ll i=2;i<=n;i++){ if(!v

精彩回顾 | HDG南京站圆满落幕,交流、分享,接地气!

文/华为eSDK 5月28日,在南京黑马路演中心举办的HDG华为开发者汇于16:30圆满结束了.听着各路技术大咖分享经验,品着香醇的咖啡,吃着美味的披萨,这小日子,也是美美哒.你说错过了?没关系,小e这就带你感受一下精彩纷呈的现场~ 分 享 Share ▼ 作为一场专业的沙龙, 最重要的自然是干货分享! 随着主持人林旅强风趣幽默的暖场, 现场气氛立马活跃起来. 我们不仅邀请了华为内部的4位专家为大家讲解关于CaaS开放平台.CCE容器云.公有云及开源等领域的专业知识,还邀请到苏宁和途牛的一线互联

2020第十三届春季国际物联网展览会-南京站3月邀约各位大咖

邀 请 函 时间:2020年03月26-28日 地点:中国?南京国际会展中心4组织单位 特邀单位:××× ×××商务部主办单位:北京铭世博国际展览有限公司 支持单位:××× ×××中国智能家居产业联盟 中华物联网联盟国家信息化专家咨询委员会 中国物联网产业协会 承办单位:北京铭世博国际展览有限公司物联世界 智慧全球前言南京六朝古都是中国东部地区重要的中心城市.全国重要的科研基地和综合交通枢纽,是长江三角洲唯一的特大城市和长三角辐射带动中西部地区发展重要门户城市.首批国家历史文化名城和全国重点风景