首页 > 其他分享 >CF906D Power Tower

CF906D Power Tower

时间:2024-07-24 20:06:34浏览次数:8  
标签:phi return Power int 1LL CF906D mul Tower mod

感觉没啥好说的,只要你知道扩展欧拉定理的式子就很 trivial 的一个题

幂塔类的问题都考虑用扩展欧拉定理降幂,则每往指数上操作一层复杂度模数就会从 \(m\) 变为 \(\phi(m)\)

根据经典结论可知,该过程在大约 \(\log m\) 次操作后就会让模数变为 \(1\),此时后面的部分就无需再计算了

不过要注意在使用扩展欧拉定理时需要对快速幂略作修改,当求出的结果 \(t\ge \phi(m)\) 时要变为 \(t\bmod \phi(m)+\phi(m)\)

总复杂度 \(O(q\log^2 m)\)

#include<cstdio>
#include<iostream>
#include<map>
#define RI register int
#define CI const int&
using namespace std;
const int N=100005;
int n,mod,a[N],q,l,r; map <int,int> phi;
inline int get_phi(int n)
{
    if (n==1) return 1;
    if (phi.count(n)) return phi[n];
    int tmp=n,ret=n;
    for (RI i=2;i*i<=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);
    return phi[tmp]=ret;
}
inline int quick_pow(int x,int p,int mod,int mul=1)
{
    for (;p;p>>=1)
	{
		if (p&1)
    	{
    	    if (1LL*mul*x>=mod) mul=1LL*mul*x%mod+mod; else mul=1LL*mul*x;
    	}
    	if (1LL*x*x>=mod) x=1LL*x*x%mod+mod; else x=1LL*x*x;
    }
    return mul;
}
inline int solve(CI l,CI r,CI mod)
{
    if (l>r||mod==1) return 1;
    int p=solve(l+1,r,get_phi(mod));
    return quick_pow(a[l],p,mod);
}
int main()
{
    RI i; for (scanf("%d%d",&n,&mod),i=1;i<=n;++i) scanf("%d",&a[i]);
    for (scanf("%d",&q);q;--q)
    scanf("%d%d",&l,&r),printf("%d\n",solve(l,r,mod)%mod);
    return 0;
}

标签:phi,return,Power,int,1LL,CF906D,mul,Tower,mod
From: https://www.cnblogs.com/cjjsb/p/18321626

相关文章

  • 如何从IBM SOAR连接交换在线powershell?
    有谁知道如何从IBMSOAR连接到ExchangeOnlinePowerShell?我一直在阅读Microsoft文档来检查我可以连接的方式,但它们都是通过powershell执行的命令,我想知道这是否是唯一的方式,我必须通过ssh连接并执行命令,或者是否有是另一种方式。是对的,没有直接从IBMSOAR连接到......
  • 【教程】vscode添加powershell7终端
    win10自带的powershell是1.0版本的,太老了,更换为powershell7后,在vscode的集成终端中没有显示本篇教程记录在vscode添加powershell7终端的过程打开vscode终端配置然后来到这个页面进行设置查看powershell7的安装位置,并关闭以管理员身份启动寻找下面的设置(找......
  • powerdesigner导出图片&PDF
    1、导出图片1.1CTR+A选中当前页的设计的表(物理模型或概念模型设计的表都可以)1.2、edit-->exportImage1.3选择自己要保存的图片类型:png/JEPG/SVG等等关于导出来的图片的清晰度,这里要说一下,自己保存的png和jepg都比较模糊,SVG虽然清晰度很高,但是手机上却无法查看,因此又研......
  • 使用onlyoffice完成Word、Excel、PowerPoint 文件在线预览、编辑、保存功能
    环境准备64-bitWindowsServer2012orhigher我自己使用的服务器配置是2核2G,带宽是2M,也就是说高于这个配置的服务器都是没有问题的。大家在挑选的时候,如果只是用来作为onlyoffice的文档服务器来使用,那么配置可以低一些,带宽越大越好安装步骤将上面的安装包全部下载到本地服......
  • 在 PowerShell 中,可以编写脚本来检测本地加载和远程加载的情况。这通常涉及到检查计算
    在PowerShell中,可以编写脚本来检测本地加载和远程加载的情况。这通常涉及到检查计算机上的特定服务或应用程序的状态或配置。以下是一些示例脚本和方法,可以用来实现这些检测:检测本地加载示例:检查本地服务的运行状态powershellCopyCode#检查本地服务状态$serviceName="M......
  • 在 PowerShell 中,"本地加载"和"远程加载"通常指的是运行脚本或命令的位置或方式。以下
    在PowerShell中,"本地加载"和"远程加载"通常指的是运行脚本或命令的位置或方式。以下是关于本地加载和远程加载的一些基本概念和示例:本地加载本地加载指的是在当前计算机上执行PowerShell脚本或命令。这些脚本和命令直接在本地计算机上运行,无需通过网络连接到其他计算机或服......
  • PowerShell 命令来操作 Windows 注册表 Get-ItemProperty 命令可以获取指定注册表路径
    PowerShell提供了一些命令和方法来操作Windows注册表。以下是一些常用的PowerShell命令和示例:1.获取注册表项的值使用Get-ItemProperty命令可以获取指定注册表路径下的键值信息。powershellCopyCode#获取注册表项的值Get-ItemProperty-Path"HKCU:\Software\Micro......
  • 【攻防技术系列+PowerShell】无文件落地攻击
    #红队#MSF#powershell虚拟机环境搭建:【Kali】,192.168.10.131【win7】,192.168.10.134接上文:【攻防技术系列】MSF进程迁移,用的是里面的1.exe。如果遇到端口占用情况,可以采用以下解决方案:之后在【win7】中使用powershell执行以下命令,实现无文件落地攻击powershell-nop......
  • C#开发:PowerDesigner建表和Navicat导入数据
    一、打开Powerdesigner,新建一个模型,点击ok二、用工具面板拖拽出一个数据表 (如果没有工具面板,请在如下操作中开启) 三、双击刚刚的拖拽出来的表,设计表的字段,可以添加注释说明 【备注】PFM:主键、外键、不可为空四、自动生成sql,然后去执行一遍这个建表语法主键自......
  • KU链接:如何在Linux作业系统上安装Azure PowerShell
    本文由KU链接вт989点сс原创编译,AzPowerShell模组是汇总模组。安装它会下载正式运作的AzPowerShell模组,并让其Cmdlet可供使用,本文说明如何在Linux上安装AzPowerShell模组。必要条件安装支援的PowerShell第7版或更新版本安装开启终端机或其他壳层主机应......