当前位置: 首页 > ds >正文

乘法逆元【费马小定理+扩展欧几里得】

目录

  • 模运算性质
  • 费马小定理
  • 乘法逆元
  • 扩展欧几里得算法
  • 随机栈

模运算性质

在这里插入图片描述

费马小定理

在这里插入图片描述
a,b互质gcd(a,b)=1

乘法逆元

a,b互质,满足a*x同余1(mod b),x是a模b的乘法逆元,记作a的-1次方。

扩展欧几里得算法

求ax+by=gcd(a,b)的一组(x,y).

随机栈

题目来源:随机栈
在这里插入图片描述
在这里插入图片描述
解题思路
想算每次拿出数的概率,就需要知道每次拿的时候有几种选择,满足条件的选择有几种,需要记录下来桟里相同的数据有多少个,可以借助优先队列和map来写。
由于这道题要取模,运用到了乘法逆元。

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int mod = 998244353;
map<int, int> m;
int pow1(int a, int b) 
{int res = 1;for (; b; b >>= 1) {if (b & 1)res = res * a % mod;a = a * a % mod;}return res % mod;
}
signed  main() {priority_queue<int, vector<int>, greater<int> > p;//小顶堆int n, num, l = -1, t = 0, s = 1, x = 1;cin >> n;for (int i = 0; i < 2 * n; i++) {cin >> num;if (t != 1){if (num == -1) {s = s * m[p.top()] % mod;//分子,可以选择的数字x = x * p.size() % mod;//分母,队列里数字个数if (p.top() >= l) {l = p.top();m[p.top()]--;p.pop();}elset = 1;} else {p.push(num);m[num]++;}}}if (t == 1)cout << "0" << endl;else {int ans = s * pow1(x, mod - 2) % mod;//除法取模cout << ans << endl;}}
http://www.xdnf.cn/news/4296.html

相关文章:

  • MySQL性能调优探秘:我的实战笔记 (上篇:从EXPLAIN到SQL重写)
  • iPaaS制造案例丨某照明行业头部企业借助谷云科技iPaaS步入数字化转型“快车道”
  • 一个基于Asp.Net Core + Angular + Bootstrap开源CMS系统
  • Redis 使用及命令操作
  • Nginx 安全防护与 HTTPS 安全部署
  • 可炫可转防丢帽 金士顿DTXS闪存盘致敬经典
  • 2025年服务器技术全景解析:量子计算、液冷革命与未来生态构建
  • Kubernetes笔记(1)Kubernetes入门
  • Premiere(Pr) CS6 - 2025 软件安装包+安装教程
  • 手写 Vue 源码 === Effect 机制解析
  • 招标专家随机抽选——设计讲解—未来之窗智能编程——仙盟创梦IDE
  • 哈希表的设计
  • QQMUSIC测试报告
  • 将真实世界带入Unreal Engine:Cesium for Unreal深度解析与实战指南
  • 人工智能在医疗运营编程中的应用综述
  • 分布式、高并发-Day04
  • Gitee的介绍
  • Spring AI 函数调用(Function Call)系统设计方案
  • C++23 std::generator:用于范围的同步协程生成器 (P2502R2, P2787R0)
  • 盘古信息领德创|半导体存储与云计算存储小巨人企业IMS数字化升级项目正式启动!
  • day5:nginx代理-动静分离
  • 高频面试题:设计秒杀系统,用Redis+Lua解决超卖
  • 邂逅蓝耘元生代:ComfyUI 工作流与服务器虚拟化的诗意交织
  • 20250506| 物化视图学习
  • MySQL中MVCC指什么?
  • Oracle04-基本使用
  • 山东大学软件学院项目实训-基于大模型的模拟面试系统-个人主页头像上传
  • 论广告系统对存算分离架构的应用
  • 提示词工程:通向AGI时代的人机交互艺术
  • 李沐动手深度学习(pycharm中运行笔记)——08.线性回归+从零实现+简洁实现