NOI2012 随机数生成器 一道noi水题 error:爆int

JZOJsenior3366.【NOI2012】随机数生成器 Description栋栋最近迷上了随机算法,而随机数生成是随机算法的基础。栋栋准备使用线性同余法(Linear Congruential Method)来生成一个随机数列,这种方法需要设置四个非负整数参数 m, a, c, X0,按照下面的公式生成出一系列随机数:Xn+1=(aXn+c) mod m其中 mod m 表示前面的数除以m的余数。从这个式子可以看出,这个序列的下一个数总是由上一个数生成 阅读详情

题目描述

栋栋最近迷上了随机算法,而随机数是生成随机算法的基础。栋栋准备使用线性同余法(Linear Congruential Method)来生成一个随机数列,这种方法需要设置四个非负整数参数m,a,c,X[0],按照下面的公式生成出一系列随机数{Xn}:

                   X[n+1]=(aX[n]+c) mod m

其中mod m表示前面的数除以m的余数。从这个式子可以看出,这个序列的下一个数总是由上一个数生成的。

用这种方法生成的序列具有随机序列的性质,因此这种方法被广泛地使用,包括常用的C++和Pascal的产生随机数的库函数使用的也是这种方法。

栋栋知道这样产生的序列具有良好的随机性,不过心急的他仍然想尽快知道X[n]是多少。由于栋栋需要的随机数是0,1,…,g-1之间的,他需要将X[n]除以g取余得到他想要的数,即X[n] mod g,你只需要告诉栋栋他想要的数X[n] mod g是多少就可以了。

输入输出格式

输入格式:
输入包含6个用空格分割的整数m,a,c,X[0],n和g,其中a,c,X[0]是非负整数,m,n,g是正整数。

输出格式:
输出一个数,即X[n] mod g

输入输出样例

输入样例#1:
11 8 7 1 5 3
输出样例#1:
2
说明

计算得X[n]=X[5]=8,故(X[n] mod g) = (8 mod 3) = 2

100%的数据中n,m,a,c,X[0]<=10^18,g<=10^8


这题好像很显然是矩阵加速递推
1. 这里写图片描述
2. 这里写图片描述
上述是都可以的 然后就撸代码啊 并且需要使用快速乘以防爆long long我这里十分sb的把d搞错成int然后gg了233 后来在SmY的buff下成功调完 还是十分开心的
下面上代码!!:

//Rwz loves Smy!!!
#include<bits/stdc++.h>
using namespace std;
#define so(i,j,k,l) for(int i=j;i<=k;i+=l)
unsigned long long k,x0,m,c,a,g, Mod;
struct lll{
    unsigned long long  f[3][3];
};
unsigned long long multi(unsigned long long a,unsigned long long b)
{
    unsigned long long  d=0;
    for(;b;b>>=1,a=(a+a)%Mod) if(b&1) d=(d+a)%Mod;
    return d;
}
lll mul(lll eee ,lll aaa)
{
    lll temp;
    so(i,1,2,1) so(j,1,2,1) 
    {
        temp.f[i][j]=0;
        so(k,1,2,1)
        temp.f[i][j]+=multi(eee.f[i][k],aaa.f[k][j]),temp.f[i][j]%=Mod; 
    }
    return temp;
}
int main()
{
    cin>>m>>a>>c>>x0>>k>>g;Mod=m;
    lll oo;oo.f[1][1]=1;oo.f[1][2]=0;oo.f[2][1]=0;oo.f[2][2]=1;
    lll xx;xx.f[1][1]=a;xx.f[1][2]=c;xx.f[2][1]=0;xx.f[2][2]=1;
    lll ha;ha.f[1][1]=x0;ha.f[2][1]=1;
    /*while(k)
    {
        if(1&k) oo=mul(oo,xx);
        xx=mul(xx,xx);
        k>>=1;
    }*/
    for(;k;k>>=1,xx=mul(xx,xx)) if(1&k) oo=mul(oo,xx);
    oo=mul(oo,ha);
    cout<<(oo.f[1][1]%g);
}
/*
8273648723648 7238468273648 72364876438 7283467823653 734864378 47747444
*/
STM32G030C8T6 ADC+DMA实战:同时采集外部电压和芯片温度的完整代码流程 本文详细介绍了STM32G030C8T6芯片通过ADC+DMA实现外部电压和芯片内部温度采集的完整流程。从硬件设计到CubeMX配置,再到驱动模块化实现与系统优化,提供了高精度多通道采集系统的实战指南,特别适合嵌入式开发者在工业控制和环境监测项目中应用。 阅读详情

相关推荐

Gemini 3.1 Flash本地部署实操:Ollama+Open WebUI零门槛运行指南

大型语言模型(LLM)本地运行是指将模型权重下载至本地设备,通过推理引擎完成离线推理的过程;其核心原理依赖量化压缩(如GGUF格式)与轻量级运行时(如Ollama)实现CPU/GPU高效加载;技术价值在于低延迟响应、数据隐私可控及免网络依赖;典型应用场景包括办公提效(邮件/周报生成)、学生学习辅助、产品原型验证等边缘AI任务;本文聚焦Gemini 3.1 Flash这一面向消费级硬件优化的轻量模型变体,结合Ollama模型管理与Open WebUI图形界面,提供从环境准备、模型拉取到流式对话的完整新手实操路

weixin_32238157的博客 490

【NOI2012】随机数生成器

Description栋栋最近迷上了随机算法,而随机数生成是随机算法的基础。栋栋准备使用线性同余法(Linear Congruential Method)来生成一个随机数列,这种方法需要设置四个非负整数参数 m, a, c, X0,按照下面的公式生成出一系列随机数< Xn >:Xn+1=(aXn+c) mod m其中 mod m 表示前面的数除以m的余数。从这个式子可以看出,这个序列的下一个数总是由

sadnohappy 537

(一)PyBullet机器人仿真入门:从环境搭建到实例解析

本文详细介绍了PyBullet机器人仿真平台从零开始的完整入门指南。内容涵盖环境搭建、官方示例解析、核心操作(连接、世界与模型)、关节控制与状态读取,以及碰撞检测、传感器模拟等高级功能,帮助读者快速掌握这一强大的机器人仿真工具。

weixin_29062865的博客 1376

【洛谷P2044】随机数生成器

题目描述 栋栋最近迷上了随机算法,而随机数是生成随机算法的基础。栋栋准备使用线性同余法(Linear Congruential Method)来生成一个随机数列,这种方法需要设置四个非负整数参数m,a,c,X[0],按照下面的公式生成出一系列随机数{Xn}: X[n+1]=(aX[n]+c) mod m 其中mod m表示前面的数除以m的余数。从...

weixin_30699235的博客 274

手把手教你用三菱PLC控制JET伺服原点:从硬件接线到GXWORKS3程序调试

本文详细介绍了如何使用三菱PLC控制JET伺服系统实现原点回归功能,涵盖硬件接线、参数配置到GX Works3程序调试的全流程。通过实战指南,帮助工程师快速掌握伺服控制技术,提升工业自动化项目的实施效率。

weixin_30642561的博客 534

ADB命令解锁Android手机屏幕的3种实用方法(附详细步骤)

本文详细介绍了在Android手机屏幕失灵或密码遗忘时,利用ADB命令解锁屏幕的三种实用方法。包括通过ADB模拟输入事件、移除锁屏认证文件(需Root权限)以及结合恢复模式抢救数据。文章提供了详细的操作步骤与风险提示,强调提前开启USB调试的重要性,是Android用户应对紧急锁屏情况的有效技术指南。

weixin_29229055的博客 918

BZOJ-3122-随机数生成器-SDOI2013-BSGS

描述 分析 关键就是对式子的变形, 将原递推公式转化为通项公式, 中间会用到等比数列求和公式. 然后切记此时方程两边同乘(1-a), 然后就化简开了. 之后得到的式子是 a^(n-1) = ... (mod p) 然后就可以用BSGS求解了. 注意最后加1. 公式明天补上 几种特判情况 : 如果a = 0, 这时 X = b, 如果t = b输出1, 否则输...

weixin_30593261的博客 151

手把手教你用CsvView分析大疆无人机飞行日志(附实战CTF题解)

本文详细介绍了如何使用CsvView工具分析大疆无人机飞行日志,包括环境搭建、日志提取、核心功能解析及CTF实战技巧。通过实战案例,帮助读者掌握无人机取证的关键技术,提升日志分析能力,特别适合网络安全竞赛和实际取证场景。

weixin_42652674的博客 455

BZOJ-2875 随机数生成器 矩阵乘法快速幂+快速乘

题目没给全,吃X了。。。 2875: [Noi2012]随机数生成器 Time Limit: 10 Sec Memory Limit: 512 MB Submit: 1479 Solved: 829 [Submit][Status][Discuss] Description 栋栋最近迷上了随机算法,而随机数生成是随机算法的基础。栋栋准备使用线性同余法(Line...

weixin_30568591的博客 220

YOLOv8改进-bifpn

跨尺度连接通过添加一个跳跃连接和双向路径来实现,自此实现了加权融合和双向跨尺度连接。该结构是加权且双向连接的,即自顶向下和自底向上结构,通过构造双向通道实现跨尺度连接,将特征提取网络中的特征直接与自下而上路径中的相对大小特征融合,保留了更浅的语义信息,而不会丢失太多的深层语义信息。传统的特征融合时将尺度不同的特征图以相同权重进行加权,但是当输入的特征图分辨率不同时,以相同的权重进行加权对输出的特征图不平等。所以BiFPN根据不同输入特征的重要性设置不同的权重,同时反复采用这种结构来加强特征融合。

weixin_45303602的博客 8139

AI原生应用API编排:如何实现高效的权限管理?

随着GPT-4、Claude 3等大模型的普及,AI原生应用(从设计之初就以AI为核心的应用)正从“概念”走向“落地”。依赖大量外部API的协同工作(如用户身份API→大模型生成API→支付API→存储API)。但随之而来的挑战是:如何在复杂的API调用链中,确保每个环节的权限合规?本文将聚焦这一问题,覆盖API编排的基础逻辑、权限管理的核心机制(如RBAC/ABAC)、实战工具链(如OPA策略引擎),以及常见场景的解决方案。本文将按照“场景引入→核心概念→原理拆解→实战演练→趋势展望”的逻辑展开。

大数据洞察的博客 451

luogu_P2044【题解】 随机数生成器 矩阵乘法

题面:https://www.luogu.org/problem/P2044 矩阵乘法裸题。 关键在于base和ans矩阵。 经过计算待定系数可以得到。 ans = { (x0,1) , (0,0) } base = { (a,0) , (c,1) } 如代码所示。 然后就可以快乐的矩阵乘法了! 但是还有一个事。 大数据不要忘了龟速乘! 不然会爆炸成5...

dazhishu2366的博客 153

Windows 下运行 openclaw 出现“‘openclaw‘ 不是内部或外部命令,也不是可运行的程序或批处理文件“的解决方案

方案适用场景推荐指数检查并手动添加 PATH明确知道全局安装目录,只是没加进PATH⭐⭐⭐⭐⭐pnpm setup 自动配置使用 pnpm 安装,想要省心的自动化方式⭐⭐⭐⭐⭐npx 免安装临时运行快速验证核心程序是否正常,排除法排查⭐⭐⭐⭐清理残留后重装npm/pnpm 混用导致版本混乱⭐⭐⭐⭐改用 WSL2不熟悉 Windows 路径体系,长期使用⭐⭐⭐'openclaw' 不是内部或外部命令这类报错,本质上不是"程序坏了",而是。

一键难忘的博客 1万+

P2044 [NOI2012] 随机数生成器

栋栋知道这样产生的序列具有良好的随机性,不过心急的他仍然想尽快知道 Xn​ 是多少。,g−1 之间的,他需要将 Xn​ 除以 g 取余得到他想要的数,即 Xn ​mod g,你只需要告诉栋栋他想要的数  Xn​ mod g 是多少就可以了。对于 100% 的数据,n,m,a,c,X0​ ≤ 10^18,1 ≤ g ≤ 10^8,n,m≥1,a,c,X0 ​≥ 0。一行 6 个用空格分割的整数 m,a,c,X0​,n 和 g,其中 a,c,X0​ 是非负整数,m,n,g 是正整数。

m0_74039681的博客 529

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

101052.随机数生成器

char c;ll res=0;for(;!isdigit(c);for(;isdigit(c);return res;ll ans=0;while(y)y>>=1;return ans;struct Matll a[N][N];int n,m;i<=k;i<=c.n;i++)j<=c.m;j++)k<=m;k++)return c;

2301_76575356的博客 508

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

NOI2012 随机数生成器

http://www.lydsy.com/JudgeOnline/problem.php?id=2875 【问题描述】栋栋最近迷上了随机算法,而随机数生成是随机算法的基础。栋栋准备使用线性同余法(Linear Congruential Method)来生成一个随机数列,这种方法需要设置四个非负整数参数m, a, c, X0,按照下面的公式生成出一系列随机数<Xn>: Xn+1= (...

weixin_34056162的博客 137

温度PID控制PLC程序

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

洛谷 P2044 [NOI2012]随机数生成器

题意简述 读入X[0], m, a, c, n和g $ X[n+1]=(a*X[n]+c)\mod m $ 求X数列的第n项对g取余的值。 题解思路 矩阵加速 设\[ F=\begin{bmatrix} a&0\\1&1\end{bmatrix}, G=\begin{bmatrix} X[0]\\c\end{bmatrix}\] 则\[ \begin{bmatrix} X...

weixin_30677617的博客 155

bzoj2875(lg2044)[Noi2012]随机数生成器

bzoj2875 和 lg2044 矩阵快速幂… [x01]&nbsp;[x01]&nbsp; \left[ \begin{matrix} x_0 & 1 \end{matrix} \right] \ [ac01]n[a0c1]n\left[ \begin{matrix} a & 0 \\ c & 1 \end{matrix} ...

生活不易,多才多艺 227

BZOJ2875: [Noi2012]随机数生成器

【传送门:BZOJ2875】 简要题意:   给出m,a,c,x[0],并且x数组满足x[i]=(a*x[i-1]+c)%m(i≠0)   给出n,g,求出x[n]%g 题解:   显然用矩乘做,不过用矩乘时,要加long long,而且要用快速乘法来处理两个数之间的乘法,不然会爆long long 参考代码: #include<cstdio> #inc...

weixin_30294021的博客 139

洛谷P2044 [NOI2012]随机数生成器

传送门 题意 数列$X_{n+1}=(aX_n+c)\bmod m$ 其中$a,c$是给定的常数,$n>0$。$X_0$的值已给出。 然后呢,你需要求出$X_n\bmod g$。 $n,m,a,c,X_0\leq10^{18},g\leq 10^8$。 题解 构造列向量 $$C_n=\begin{bmatrix}1\\X_n\end{bmatrix}$$ 然后,构造转移矩阵...

weixin_30632883的博客 130

洛谷·[SDOI2013] 随机数生成器

洛谷P3306 [SDOI2013] 随机数生成器 BSGS

樱狸✨愿携清风归来处 327

【Bzoj2875】随机数生成器

题目描述栋栋最近迷上了随机算法,而随机数是生成随机算法的基础。栋栋准备使用线性同余法(Linear Congruential Method)来生成一个随机数列,这种方法需要设置四个非负整数参数m,a,c,X[0],按照下面的公式生成出一系列随机数{Xn}:X[n+1]=(aX[n]+c) mod m其中mod m表示前面的数除以m的余数。从这个式子可以看出,这个序列的下一个数总是由上一个数生成的。用

没有听众的演讲 550

[bzoj 2875--Noi2012]随机数生成器

栋栋最近迷上了随机算法,而随机数是生成随机算法的基础。栋栋准备使用线性同余法(Linear Congruential Me thod)来生成一个随机数列,这种方法需要设置四个非负整数参数m,a,c,X[0],按照下面的公式生成出一系列随机数X[n]。X[n+1]=(a*X[n]+c)mod m其中mod m表示前面的数除以m的余数。从这个式子可以看出,这个序列的下一个数总是由上一个数生成的。...

galiqing的博客 338

BZOJ2875 [Noi2012]随机数生成器

2875: [Noi2012]随机数生成器 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 1388  Solved: 772[Submit][Status][Discuss] Description     栋栋最近迷上了随机算法,而随机数是生成随机算法的基础。栋栋准备使用线性同余法(Linear Congruential Method)来生

hahalidaxin的专栏 368

洛谷-5147 随机数生成器

题目描述 HKE最近编写了一个函数 rand\text{rand}rand,其中 l,r 为正整数且 l≤r。这个函数会等概率返回区间 [l,r] 中任意一个正整数。然后,他又编写了一个函数: int work(int x){ if(x==1) return 0; else return work(rand(1,x))+1; } 现在给定一个正整数 n,请问 work(n) 的返回值的期望值是多...

mkopvec的博客 569

[NOI2012] 随机数生成器

题目链接 这道题看上去是一个递推题,但是n<1018n<10^{18}n<1018 递推是要T的节奏啊 所以怎么办呢? 我们看到这个递推的方程非常的短 Xn+1=(aXn+c)mod(m)X_{n+1}=(aX_n+c)mod(m) Xn+1​=(aXn​+c)mod(m) 并且要在lognlognlogn 的时间内做出来,我们想到了矩阵乘法! 我们构造一下 [Xi1]⋅[a0c...

NephrenRuqInsania 459
上一篇: 关于极限小数据!!!
下一篇: 金明的预算方案DP(写伪了)
RustSword_RWZ
博客等级 码龄10年 6粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值