首页 > 其他分享 >LOJ #162. 快速幂 2

LOJ #162. 快速幂 2

时间:2022-09-24 13:22:05浏览次数:51  
标签:ch LOJ dfrac sqrt int 快速 162 getchar

题意

要求一个 \(O(\sqrt P) - O(1)\) 的快速幂。

幂可以用扩展欧拉定理规约到 \([1,P-1]\) 中。

分析

分块。定个阈值 \(B = \sqrt P\) + 1。

\(a^t = a^{t\bmod B} \cdot a^{B \times \lfloor\dfrac{t}{B}\rfloor}\)。

\(\dfrac{t}{B} \le \dfrac{P}{B} = \mathcal{O}(\sqrt n)\)。

这样预处理 \(a^i, (a^B)^i\) 即可。

#include <bits/stdc++.h>
#include <assert.h>
using namespace std;
inline int read(){
	register int x=0,f=0,ch=getchar();
	while('0'>ch||ch>'9')f^=ch=='-',ch=getchar();
	while('0'<=ch&&ch<='9')x=x*10+(ch^'0'),ch=getchar();
	return f?-x:x;
}
const int P = 998244352, MAX = sqrt(P) + 10;
int x,n;
int a[MAX], b[MAX];
signed main(){
	int B = sqrt(P) + 1;
	int x = read(), T = read(); 
	a[0] = b[0] = 1;
	for(int i=1;i<=B;++i) a[i] = 1ll * a[i-1] * x % P;
	for(int i=1;i<=B;++i) b[i] = 1ll * b[i-1] * a[B] % P;
	while(T--) {
		int t = read();
		printf("%d ", 1ll * a[t % B] * b[t / B] % P);
	}
	return 0;
}
···

标签:ch,LOJ,dfrac,sqrt,int,快速,162,getchar
From: https://www.cnblogs.com/Lates/p/16725469.html

相关文章

  • 快速排序
    简介快速排序(Quicksort)是对冒泡排序的一种改进。基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再......
  • 前后端开发模式、API接口、接口测试工具postman、restful规范、序列化和反序列化、dja
    目录前后端开发模式一、两种模式1.传统开发模式:前后端混合开发1.1.缺点:2.前后端分离开发模式2.1.特点3.补充老刘的相关博客:二、API接口1.作用2.说明三、接口测试工具postm......
  • API接口、接口测试工具postman、restful规范、序列化与反序列化、djangorestframework
    API接口通过网络,规定了前台后台信息交流规则的url链接,也就是前后台信息交互的媒介API接口的样子url:长得像返回数据的url链接https://api.map.baidu.com/place/v2/s......
  • 易优cms忘记后台登陆密码?解决方法 Eyoucms快速入门
    忘记后台管理密码怎么搞? 方法一:下载官方易优修改重置后台密码小工具 https://www.eyoucms.com/uploads/soft/200319/1-2003191Q000.zip下载附件后解压,将setpwd.php......
  • 零基础使用 WebGL — 快速入门
    WebGL作为一个非常底层的API,学习和使用起来非常困难,因为WebGL需要大量的背景知识。网上教程一般都是介绍API就开始渲染,介绍不多,容易让人迷惑,也容易被劝退。即使你学会......
  • 快速稳定盈利的四个步骤
    控制自己不会有大幅度的回撤是稳定盈利的第一步。如何去控制回撤呢?第一是你要记录你对所有模式的实操情况。然后记录下来。比如你用半路战法的时候最大的一次日回撤是多少......
  • 快速上手React编程 pdf
    高清扫描版下载链接:https://pan.baidu.com/s/1R4B-izNpESydo-yFNmU8xw点击这里获取提取码 ......
  • 【小技巧】快速读取数组中的对象
    背景开发中经常遇到需要从数组中读取某个对象,每次遍历数组查询并不是一个好的选择,会消耗无谓的资源,我们可以使用一个对象作为中间结构,后续再次读取对象是可以直接从中间对......
  • VS Code摸鱼神器,让你快速开发AI模型
    摘要:ModelArtsVSCode插件一键接入云上开发环境介绍及操作指导对于习惯于使用本地VSCodeIDE的开发者,受限于本地资源,采用本地开发加云上调测的远程开发方式不失为一种更......
  • 第一章:TypeScript快速入门
    一、TypeScript开发环境搭建1、TypeScript有什么用编译时的强类型模块化已有的类库可以很方便的使用2、下载Node.jsnode.js官网:Node.js(nodejs.org)......