Jzoj5636 Power

2021年暑期训练阶段二Day2 目录 A - Lake Counting B - Binary Search C - Fire! D - Find a way E - Power Calculus F - Find The Multiple G - 棋盘问题 A - Lake Counting 题意: 由于最近的降雨,水在农民约翰的田地里的各个地方汇集起来,用一个N x M(1<=N<=100;1<=M<=100)平方米。每个广场包含水(“W”)或旱地(“W”)。农夫约翰想知道他的田地里形成了. 阅读详情

近期没有写过博客感觉要死了->重返jz深造

一道区间查询的问题,因为模数不是质数,我们考虑利用指数循环节这个东西:

x^k=x^(k%phi(M)+phi(M))%M 这里要求k>=phi(M)

那么可以写成Ans[l,r]%M=x^(Ans[l+1,r]%phi(M))%M

由于phi的迭代会在logn次收敛为1,所以我们可以直接递归来做

先用线性筛筛出10^7以内的phi值,大过这个的就分解质因数来计算

注意一个问题,对于一个询问[l,r],有可能answer[l+1,r]并不能达到phi(M),这个时候就不能使用上面的结论

至于如何判断一个区间的答案是否大过模数,可以做一次不带取模的pow和一次带取模的,如果两次答案不同就说明答案大过模数

#pragma GCC optimize("O3")
#pragma G++ optimize("O3")
#include<stdio.h>
#include<string.h>
#include<algorithm>
#define N 10000000
#define LL long long
using namespace std;
int n,m,M,s[100010]; bool vis[N+10];
int t=0,w[N>>2],phi[N+10];
inline LL bow(LL x,LL k,LL s=1){
	for(;k;x=x*x,k>>=1) k&1?s=s*x:0;
	return s;
}
inline LL pow(LL x,LL k,LL M,LL s=1){
	for(;k;x=x*x%M,k>>=1) k&1?s=s*x%M:0;
	return s;
}
inline int cphi(int M){
	int T=M;
	for(int i=1;w[i]*w[i]<=M;++i)
		if(M%w[i]==0) for(T=T/w[i]*(w[i]-1);M%w[i]==0;M/=w[i]);
	if(M>1) T=T/M*(M-1);
	return T;
}
inline bool gcd(int l,int r,int M,int& S){
	if(M==1){ S=0; return 1; }
	if(l==r){ S=s[l]%M; return s[l]>=M; }
	int ph=(M<=N?phi[M]:cphi(M));
	if(gcd(l+1,r,ph,S)){
		S=pow(s[l],ph+S,M);
		return s[l]>=1;
	} else {
		int T=bow(s[l],S);
		S=pow(s[l],S,M);
		return S!=T;
	}
}
int main(){
	freopen("power.in","r",stdin);
	freopen("power.out","w",stdout);
	scanf("%d%d",&n,&M);
	for(int i=1;i<=n;++i) scanf("%d",s+i);
	for(int i=2;i<=N;++i){
		if(!vis[i]) phi[w[++t]=i]=i-1;
		for(int j=1;j<=t && i*w[j]<=N;++j){
			vis[i*w[j]]=1;
			if(i%w[j]==0){ phi[i*w[j]]=phi[i]*w[j]; break; }
			phi[i*w[j]]=phi[i]*(w[j]-1);
		}
	}
	scanf("%d",&m);
	for(int l,r;m--;){
		scanf("%d%d",&l,&r);
		gcd(l,r,M,r);
		printf("%d\n",r);
	}
}


从维纳滤波到Richardson-Lucy:图像去模糊算法的原理与实践 本文深入解析了图像去模糊的核心原理,重点对比了维纳滤波与Richardson-Lucy两种经典去卷积算法。维纳滤波在频域进行快速权衡,适用于高斯噪声场景;而Richardson-Lucy算法基于泊松噪声模型迭代优化,更适用于天文、显微等科学成像。文章通过Python代码实践,详细阐述了PSF(点扩散函数)的关键作用及算法选型指南。 阅读详情

相关推荐

别再只盯着轨迹线了!FLUENT DPM后处理实战:从粒子采样到直方图报告的完整流程

本文详细介绍了FLUENT DPM后处理的完整流程,从粒子采样到直方图报告的实战技巧。通过设置采样面、分析.dpm文件数据以及创建加权直方图,帮助工程师获取粒子速度、粒径分布等定量信息,提升多相流模拟的深度分析能力。特别适合需要超越轨迹线分析的CFD工程师。

weixin_28730353的博客 277

【NOI2018模拟4.7】power(扩展欧拉定理)

Description: 题解: 必要定理: 扩展欧拉定理: 有正整数a,b有正整数a,b有正整数a,b ab=ab(mod&nbsp;p)(b&lt;ϕ(p))ab=ab(mod&nbsp;p)(b&lt;ϕ(p))a^b=a^b(mod~p)(bab=ab&nbsp;mod&nbsp;ϕ(p)+ϕ(p)(mod&nbsp;p)(b&gt;=ϕ(p))ab=ab&nbsp;...

Cold_Chair的博客 414

别再手动拷贝文件了!用Keil MDK的Pack Installer一键搞定STM32上的RT-Thread Nano移植

本文详细介绍了如何使用Keil MDK的Pack Installer一键快速移植RT-Thread Nano到STM32项目,告别繁琐的手动拷贝和配置过程。通过自动化版本管理和依赖处理,移植时间从47分钟缩短至3分钟,大幅提升开发效率。文章还提供了实战步骤、高级配置技巧和常见问题解决方案,帮助开发者轻松实现RTOS集成。

weixin_29194817的博客 363

JZOJ1133. power

Description 从某个未知数x开始,我们可以反复地乘以x,于是我们可以用30次运算就可以算出x^31: x^2=x*x,x^3=x^2*x,x^4=x^3*x,…..,x^31=x^30*x 显然,平方操作可以缩短这些操作序列。下面是一个仅用8次运算计算x^31的例子: x^2=x*x,x^3=x^2*x,x^6=x^3*x^3,x^7=x^6*x,x^14=x^7

Akakii的博客 675

开源分享:苹果群控手机源代码解析与实战

本文介绍了苹果设备群控的基本原理和实现方法,重点解析了基于Python+Appium的群控系统构建。主要内容包括:1)设备连接管理技术(USB/Wi-Fi);2)自动化控制方式(WDA/AppleScript/Appium);3)实战演示了通过Python脚本实现多设备同时控制,涵盖环境配置、代码解析和功能说明;4)提出了多线程、图像识别等优化方向。文章为开发者提供了快速上手的群控方案,适用于自动化测试、批量管理等场景,并推荐了相关开源项目参考。

2403_88540309的博客 1343

BBR算法原理与实现深度解析

BBR算法通过重新定义拥塞控制的基本范式,为现代网络应用提供了突破性的解决方案。随着QUIC协议的普及和智能网卡技术的发展,BBR类算法将在边缘计算、云游戏、工业物联网等领域发挥更重要的作用。

程序猿老樊的博客 2415

【JZOJ5636】power

Time Limits: 4500 ms Memory Limits: 262144 KB Description Input Output Sample Input 6 1000000000 1 2 2 3 3 3 8 1 1 1 6 2 2 2 3 2 4 4 4 4 5 4 6 Sample Output 1 1 2 4 256 3 27 597484987 ...

white_elephant的博客 226

PyTorch版Unet训练后别只看loss:手把手教你计算并可视化多类别语义分割的mIoU(附完整代码)

本文详细介绍了在PyTorch中使用Unet模型进行多类别语义分割后,如何计算和可视化mIoU(mean Intersection over Union)以全面评估模型性能。通过完整的代码示例和实用技巧,帮助开发者从loss优化转向更精准的区域分割评估,特别适用于医学图像分析等关键场景。

weixin_30906185的博客 435

jzoj5636 【NOI2018模拟4.7】power (扩展欧拉定理,phi的性质)

Description 给定正整数m&lt;=1e9与n个数,n&lt;=1e5,q个询问,q&lt;=1e5,每次询问某个区间[l,r]的power值: 即alal+1al+2...aralal+1al+2...aral^{al+1^{al+2...^{ar}}}%m ??? 扩展欧拉定理就适合这种求幂取模的破玩意 第一条其实可以与下面两条合并,然后下面把gcd!=1去掉。 ...

一位蒟蒻的小博客 317

自动驾驶仿真(五)—— 基于Carsim、Prescan、Simulink的联合仿真

自动驾驶仿真五——基于Carsim、Prescan、Simulink的联合仿真1. 联合仿真流程2. CarSim联合仿真配置要点3. Prescan联合仿真配置要点4. Carsim、Prescan、Simulink联合仿真结果5. 参考学习的书目教材 博主前面的博文已经介绍了Carsim和Prescan各自与Matlab/Simulink的相关联合仿真应用实例,并且论述过几款软件各自的优势及用法,CarSim适合动力学模型的建立,PreScan适合行车场景的搭建,Simulink适合控制算法的设计及信号

zhudj08的博客 1万+

深度强化学习中的动作屏蔽(Action Masking)

在复杂环境中使用动作屏蔽,实现更好的训练效果

Kiek17的博客 5876

一些基础算法的模板(持续更新)

更新中 //Templates From Extended_Ash/Cooevjnz/JacaJava/Tubbcrafft //To be continued... //Suffix Automation char str[N]; int s[N][26],mx[N],f[N],sz[N]; int last=1,cnt=1,n,v[N],r[N],ans=0; inlin

扩展の灰(Extended Ash/Cooevjnz) 3865

【OpenClaw从入门到精通】第63篇:A股智能分析实战——用OpenClaw搭建个人量化研究助手(2026实测版)

2026年,OpenClaw已成为量化投研圈的现象级工具,八家头部券商密集发布专题研报力证其价值。传统量化投研面临技术门槛高、重复劳动多、策略迭代慢、非结构化数据处理弱四大痛点,而OpenClaw通过“AI智能体+金融Skill+量化API”的融合,实现了从数据获取、策略生成、回测验证到持仓监控的全流程自动化。本文基于2026年最新实测经验,完整呈现个人量化研究助手搭建:从阿里云部署、阿里云百炼API配置(含解析失败解决方案)、Tushare数据源接入,到PB-ROE价值选股、研报复现、自动化回测、持仓监控

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1058

扩展gcd以及同余方程ax=b(mod M)

关于扩展gcd其实没有必要搞懂,背下来就好了如果不会的自行学习 对于方程ax=b(mod M),我们可以将其化简成为ax+My=b,让后用扩展gcd求解 当b|r=gcd(a,M)时,方程有r个解,否则无解,对于有解的情况,每个解为用gcd求出的x乘上b/r+k*(M/r) int extgcd(int a,int b,int& x,int& y){ if(b){ int r=extg

扩展の灰(Extended Ash/Cooevjnz) 2281

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Jzoj4307 喝喝喝

显然,如果令w[i]=s[i]-k,那么显然s[i]|w[j]就是s[j]%s[i]=k的必要条件,那么我们倒序枚举每个开头l,枚举w[l]的每个因数看看他在s[l+1]~s[n]中有没有出现,求出一个位置最靠近l的r,那么贡献就是r-l #include #include #include #define INF 0x7f7f7f7f using namespace std; int n,

扩展の灰(Extended Ash/Cooevjnz) 722

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Jzoj5236 利普希茨

对于一个整数序列A,我们定义f(A)=max{floor(|Ai-Aj|/(j-i))},这里i 给出一个长度为n的序列A,有q此操作 1.修改一个元素的值 2.询问A的一段区间[l,r]组成的序列的f(A[l..r]) 这里有一个很显然的结论,那就是使得f取到最大的i,j一定满足j=i+1 为什么?可以证明一下,以下证明来自jefflyy:函数 " 用归纳法,若(长度为2⋯

扩展の灰(Extended Ash/Cooevjnz) 702

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Jzoj1158荒岛野人

正解:同余方程 对于每对野人i,j,解方程(p[i]-p[j])=c[j]-c[i](mod Answer) 若在min(l[i],l[j])以内有解则不行(++ANS)否则可以 #include #include using namespace std; int c[20],p[20],l[20],n,M; int extgcd(int a,int b,int& x,int& y){

扩展の灰(Extended Ash/Cooevjnz) 674

Jzoj4722 跳楼机

srwudi的跳楼机可以采用以下四种方式移动: 1、向上移动x层; 2、向上移动y层; 3、向上移动z层; 4、回到第一层。 一个月黑风高的大中午,DJL来到了srwudi的家,现在他在srwudi家的第一层,碰巧跳楼机也在第一层。DJL想知道,他可以乘坐跳楼机前往的楼层数(不大于h)。 我们发现变量只有3个,所以必然考虑层数%x的情况,若第i层可达,则必然第i+kx层也可以到达

扩展の灰(Extended Ash/Cooevjnz) 664

Jzoj4832 高维宇宙

我们注意到有ai>1,所以,ai+aj为质数当且仅当两者奇偶性不同 我们可以以此将这个图变成一个二分图跑匈牙利算法即可 (这个题n只有40害得我想了半天状压dp和折半搜索,坑。。。) #pragma GCC optimize("O3") #pragma G++ optimize("O3") #include #include #include #include #define N 100

扩展の灰(Extended Ash/Cooevjnz) 617

UOJ62 怎样跑的更快

bi=∑j=1n(i,j)c−d∗idjdzjb_i=\sum_{j=1}^n(i,j)^{c-d}*i^dj^dz_jbi​=j=1∑n​(i,j)c−d∗idjdzj​ biid=∑j=1nzjjd(i,j)c−d\frac{b_i}{i^d}=\sum_{j=1}^nz_jj^d(i,j)^{c-d}idbi​​=j=1∑n​zj​jd(i,j)c−d记(i,j)=x,Bi=biid,Zi=...

扩展の灰(Extended Ash/Cooevjnz) 573

Jzoj1306 Sum

先预处理出取模后的前缀和s,那么问题变成min(s[j]-s[i]%P)且s[j]-s[i]%P>=k 把s序列反过来作,对于每个数s[i],维护一个set存有s[i]+1~s[……

扩展の灰(Extended Ash/Cooevjnz) 570

[笔记]杜教筛核心原理

∑ni=1∑mj=1gcd(i,j)∑i=1n∑j=1mgcd(i,j)\sum_{i=1}^n\sum_{j=1}^mgcd(i,j) =∑nd=1d∗f(d)=∑d=1nd∗f(d)=\sum_{d=1}^nd*f(d) =∑nd=1d∗∑d|jμ(j/d)∗F(d)=∑d=1nd∗∑d|jμ(j/d)∗F(d)=\sum_{d=1}^nd*\sum_{d|j}\mu(j/d)*F(d) ...

扩展の灰(Extended Ash/Cooevjnz) 556

一些反演求和过程?

. 问题∑i,j&amp;lt;=niaja(i,j)b\sum_{i,j&amp;lt;=n}i^aj^a(i,j)^bi,j&lt;=n∑​iaja(i,j)b记f(d)=∑(i,j)=diajaF(d)=∑d∣i,d∣jiajaf(d)=\sum_{(i,j)=d}i^aj^a \\ F(d)=\sum_{d|i,d|j}i^aj^af(d)=(i,j)=d∑​iajaF(d)=d∣i,d∣...

扩展の灰(Extended Ash/Cooevjnz) 551

Jzoj3020 最多的约数

WZK是个数学狂热爱好者。最近他又想出了一道题目来考大家。题目很简单,给定一个正整数n,对于所有不超过n的正整数,找到包含约数最多的一个数。如果有多个这样的数,那么回答最小的那个。 直接dfs即可,注意两个地方要优化:1.按照素数表的顺序递增枚举 2.每个数的幂次递减,按照贪心原则就可以知道 #include #define L long long int w[500000],t; boo

扩展の灰(Extended Ash/Cooevjnz) 549

Jzoj4786 小a的强迫症

小a是一名强迫症患者,现在他要给一群带颜色的珠子排成一列,现在有N中颜色,其中第i中的颜色的珠子有s[i]个,要求排列中第i种颜色的最后一个珠子一定要排在第i+1种颜色的最后一个珠子前面,问有多少种方案 ΣS 组合数学法,一种一种颜色来排,我们发现对于一种颜色i,相当于在前面所有的空位种选出s[i]-1个,这个可以用组合数计算,其值为C(-1+Σs[i],s[i]-1),组合数我们可以用阶乘+逆

扩展の灰(Extended Ash/Cooevjnz) 547
上一篇: 51Nod1553 周期串查询
下一篇: Jzoj5619 重围
扩展的灰
博客等级 码龄12年 60粉丝 342原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值