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

news/2024/11/17 18:48:58/文章来源:https://www.cnblogs.com/zhengchenxi/p/18357442

看到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 longconst 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);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/783381.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IOS UI自动化脚本

1.安装rethinkdb https://rethinkdb.com/docs/install/osx/ 2.安装bunch包错修复setup.py里面的数据,去掉U 3.imp包变成了importlib需要替换import Imp# moduleFile, pathName, desc = imp.find_module(moduleName, [os.path.dirname(modulePath)])# module = imp.load_module…

Cartographer的扫描匹配

cartographer 代码思想解读(1)- 相关匹配cartographer在2016年开源后一直在使用,但是一直未仔细阅读并分析其核心代码结构。目前网上可以找到许多博主对其分析和理解。其cartographer的基本思想可参考他人的 博主博客。本博客主要目的根据其框架思想,将其核心算法进行提取,…

TapData 信创数据源 | 国产信创数据库 PolarDB MySQL 数据同步指南,加速国产化进程,推进自主创新建设

本专题将以 TapData 正在支持的各国产信创数据源为原点,提供详细的数据库同步、迁移教程,为有需求的用户提供更灵活的工具选择。本文将介绍的 TapData 数据源为——PolarDB。随着国家对自主可控的日益重视,目前在各个行业和区域中面临越来越多的国产化,采用有自主知识产权的…

sqlserver取消阻止表更改

😘宝子:除非不再醒来,除非太阳不再升起,不然都请你好好生活,挣扎着前进,开心的笑。(●◡●)

pbootcms 网站打开提示:未检测到您服务器环境的sqlite3数据库扩展...

pbootcms 网站打开提示:未检测到您服务器环境的sqlite3数据库扩展...按照提示信息操作,检查php.ini中是否已经开启sqlite3扩展。详细介绍->pbootcms提示错误信息 未检测到您服务器环境的sqlite3数据库扩展扫码添加技术【解决问题】专注中小企业网站建设、网站安全12年。熟…

Python网页应用开发神器fac 0.3.0全新版本发布

大家好我是费老师,在Python生态中,有很多以Python为主要开发语言,实现网页应用开发的框架,其中最为知名的有Dash、flet、streamlit、gradio、nicegui等。 如果综合考虑流行度、开发效率、开发自由度、相关生态成熟度、可拓展性、安全性等各方面的能力,Dash是其中天花板级别…

天线选择快速指导

《swra351b-DN035 -- Antenna Quick Guide (Rev. B).pdf》

pbootcms新手必读|安装需知|环境要求|快速部署|获取授权码|模板制作

环境要求服务器:Linux / Windows / Nginx / Apache / IIS PHP版本:不小于5.4,完美支持php7。推荐PHP5.6和PHP7.3 MYSQL版本:5.0以上。推荐使用5.5+快速部署1、将官网下载的压缩包里面所有文件和文件夹上传到你的网站根目录 (支持安装在二级目录)2、数据库默认采用的是sqlit…

pbootcms教程—设置的会话目录创建失败!

pbootcms教程&mdash;设置的会话目录创建失败!这个问题常见于宝塔面板,用户将pbootcms模板传到宝塔上,打开域名出现这个问题。解决方法:1、打开宝塔面板,左侧找到文件,找到对应的站点目录,如下图:2、按照下图进行设置,点确定,如果默认就是这样的设置,也要点下确定…

pbootcms模板自动清理runtime缓存

打开/apps/home/controller/ExtLabelController.php文件找到// 测试扩展单个标签 private function test() { $this->content = str_replace({pboot:userip}, get_user_ip(), $this->content); }}在它下面加入 // 自动会话清理脚本public function clean…

使用Github Action来拉取docker镜像

前提 只需一个github账号即可注意: 免费版 Action 每天能使用1小时,每个月33小时(基本上够用) 国内网络访问github网速并不稳定,但是用来应急还是可以的拉取逻辑GitHub Action 来拉取和打包镜像 从 github 上下载压缩包 上传到自己的服务器上 解压加载镜像到自己的服务器上…

zabbix“专家坐诊”第251期问答

问题一 Q:zabbix模板自带的监控项很多都不需要,也不用删除,就是怎么让他们都不展示出来A:禁用掉 Q:还是在的,我想要就看不见,不是不启用,想要效果跟删除一样,看不见,不会妨碍浏览,这些自带的模板很多都很废 A:是指标列表不想看到还是这个地方不想看到 问题二 Q:z…