首页 > 其他分享 >P5431 【模板】模意义下的乘法逆元 2

P5431 【模板】模意义下的乘法逆元 2

时间:2024-08-13 17:49:22浏览次数:14  
标签:ch int read P5431 逆元 prod 模板 out

看到5e6的数据,500ms的时限,\(O(NlogN)\)快速幂直接跑肯定会T掉,那我们就要考虑优化一下式子。

我们令\(s = \prod_{1}^{n}{a[i]}\) ,那我们给第i个式子通分,就为$ \frac{k^i*s/a[i]}{s} $

\(s/a[i]\) 就相当于$ \prod ^{i-1}_{1}{a[i]}* \prod _{i+1}^{n}{a[i]}$

因此我们只需要预处理出前缀积和后缀积,最后只需要求一遍\(s[n]\)的逆元就可以。

点击查看代码
#include<bits/stdc++.h>
using namespace std;

#define int long long

const int N=6e6+107;
int n,p,k,ans;
int a[N],b[N],s[N];

int read()
{
	int f=1,s=0;char ch=getchar();
	while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
	while(ch>='0'&&ch<='9'){s=(s<<1)+(s<<3)+(ch^48);ch=getchar();}
	return f*s;
}

int qpow(int a,int b)
{
	int ans=1;
	while(b)
	{
		if(b&1) ans=ans*a%p;
		b=b>>1;
		a=a*a%p;
	}
	return ans;
}

signed main()
{
	// freopen("in.in","r",stdin);
	// freopen("out.out","w",stdout);
	n=read(),p=read(),k=read();
	s[0]=1;
	for(int i=1;i<=n;i++)
	{
		a[i]=read();
		s[i]=s[i-1]*a[i]%p;
	}
	b[n+1]=1; a[n+1]=1;
	for(int i=n;i>=1;i--) b[i]=b[i+1]*a[i+1]%p;

	int j=k;
	for(int i=1;i<=n;i++,j=j*k%p)
	{
		ans=(ans+s[i-1]*j%p*b[i]%p)%p;
	}

	printf("%lld",ans*qpow(s[n],p-2)%p);
}

标签:ch,int,read,P5431,逆元,prod,模板,out
From: https://www.cnblogs.com/zhengchenxi/p/18357442

相关文章

  • pbootcms新手必读|安装需知|环境要求|快速部署|获取授权码|模板制作
    环境要求服务器:Linux/Windows/Nginx/Apache/IIS PHP版本:不小于5.4,完美支持php7。推荐PHP5.6和PHP7.3MYSQL版本:5.0以上。推荐使用5.5+快速部署1、将官网下载的压缩包里面所有文件和文件夹上传到你的网站根目录(支持安装在二级目录)2、数据库默认采用的是sqlite,不......
  • [YM]模板-单链表(超详细简洁模板)
    概念:链表是一种用于存储数据的数据结构,通过如链条一般的指针来连接元素。它的特点是插入与删除数据十分方便,但寻找与读取数据的表现欠佳,复杂度几乎是O(n)但其还是有很大的重要性是数据结构的开端模板:题目概述:相信大家对于单链表的操作已经游刃有余了,我们知道,对于一个单......
  • pbootcms模板自动清理runtime缓存
    打开/apps/home/controller/ExtLabelController.php文件找到  //测试扩展单个标签  privatefunctiontest()  {    $this->content=str_replace('{pboot:userip}',get_user_ip(),$this->content);  }}在它下面加入//自动会话清理脚本publicfunc......
  • Makefile 编译多级目录多个目标文件模板
    对于当前目录结构下的Makefile(基于图书管理系统).├──Makefile├──README.md├──bin│├──adminsys│└──usersys├──build│├──adminmain.o│├──generalcore.o│├──generalimpl.o│├──generalview.o│├──......
  • 【C++面向对象】泛型编程(模板) 新手小白都能懂!
    目录泛型编程是什么?模板和泛型编程的关系?函数模板定义调用类模板定义调用总结/小注泛型编程是什么?顾名思义,“泛型”即“广泛的类型”,即不拘泥于一种特定类型的编程方法。在泛型编程时,我们通常使用一个或多个类型占位符来表示一种或多种类型,这些类型对于模板而言......
  • 帝国cms手机端模板怎么用
    帝国CMS手机端模板为网站提供优化后的移动端浏览体验。使用帝国CMS手机端模板非常简单,以下是分步指南:步骤1:查找并下载模板访问帝国CMS官方网站或第三方模板市场,浏览和下载您喜欢的手机端模板。步骤2:上传模板到帝国CMS登录帝国CMS后台,导航到“模板管理”>“手机端模板”......
  • 洛谷 P4556 雨天的尾巴之线段树合并模板
    洛谷P4556题解传送锚点摸鱼环节[Vani有约会]雨天的尾巴/【模板】线段树合并题目背景深绘里一直很讨厌雨天。灼热的天气穿透了前半个夏天,后来一场大雨和随之而来的洪水,浇灭了一切。虽然深绘里家乡的小村落对洪水有着顽固的抵抗力,但也倒了几座老房子,几棵老树被连根拔起,以......
  • 大模型agent开发之prompt提示词模板
    提示词工程的建模在大模型对话agent的开发中有着重要的地位,好的提示词模板可以辅助大模型做出更加准确的预测,得到更加准确的答案。本文使用langchain进行agnent开发,langchain中封装了很多工具和方法其中就包括不同的prompt模板,接下来本文将详细介绍几种不同风格的prompt模板的使用......
  • 中后台管理信息系统:打造高效原型设计的12套通用框架模板
    在数字化转型的大潮中,中后台管理信息系统作为企业内部管理的核心支撑,其设计与实现直接影响着企业的运营效率与决策能力。为了高效、精准地满足多样化的中后台管理系统开发需求,一套全面、灵活的原型设计方案显得尤为重要。本文将深入探讨一款集成了12套精心设计的框架模板的中后......
  • 【模板】缩点
    \[\Large给出一个图,求出SCC后缩点得到新的图\]做法:Tarjan记录scc然后根据SCC去重新建图#include<cstdio>#include<stack>#include<algorithm>#include<iostream>#include<cstring>#include<vector>#include<queue>#defineepemplace_b......