bzoj2875随机数生成器——矩阵快速幂
2024-08-22 20:18:19
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2875
矩阵快速幂,把x和c分开求,最后加上即可;
为防止爆long long,要用快速乘。
代码如下:
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
typedef long long ll;
ll n,x,a,c,m,g;
ll mul(ll x,ll y)
{
ll s=;
while(y)
{
if(y&)(s+=x)%=m;
x=(x+x)%m;
y/=;
}
return s;
}
struct Matrix{
ll aa[][];
Matrix operator * (const Matrix &y) const
{
Matrix x;
memset(x.aa,,sizeof x.aa);
for(int i=;i<=;i++)
for(int k=;k<=;k++)
for(int j=;j<=;j++)
(x.aa[i][j]+=mul(aa[i][k],y.aa[k][j]))%=m;
return x;
}
}ans,s;
int main()
{
scanf("%lld%lld%lld%lld%lld%lld",&m,&a,&c,&x,&n,&g);
s.aa[][]=a;s.aa[][]=;
s.aa[][]=c;s.aa[][]=;
ans.aa[][]=;ans.aa[][]=;
while(n)
{
if(n&)ans=s*ans;
s=s*s;
n/=;
}
printf("%lld",(mul(ans.aa[][],x)+ans.aa[][])%m%g);
return ;
}
最新文章
- 初学java之12 泛型编程的个人理解总结
- ORACLE数据库存储空间使用情况查询
- jquery CRUD一个元素class属性
- PowerProfile.java与power_profile.xml
- 【20160924】GOCVHelper 图像处理部分(2)
- 是不是content-type: text/html的数据包一到,浏览器就肯定刷新页面?
- Load xlsx in a folder to RDBMS table with Talend
- hibernate反向工程 (eclipse和myeclipse)(转)
- windows下python+flask环境配置详细图文教程
- 转深入学习heritrix---体系结构(Overview of the crawler)
- BP神经网络模型及算法推导
- Java Collection 集合类大小调整带来的性能消耗
- Android开发经验—不要指望类finalize干活的方法做你想要什么
- Android之HandlerThread
- web从入门开始(3)-----第一个网页
- sysbench对MySQL的压测
- Redis的数据结构之sorted-set
- 【Java每日一题】20170310
- 隐马尔可夫模型:HMM
- 使用idea生成maven项目的jar包(转)
热门文章
- tomcat启动文件
- 如何去掉Google搜索的跳转 让你的Google搜索不被reset掉
- POJ 1141 Brackets Sequence (区间DP)
- 10分钟,解决卖点没创意的难题zz
- 生产追溯系统-Wifi+传感器,实现计数器以及监控机器是否停止
- iperf3 测试路由器吞吐率
- FFmpeg编码详细流程
- 在与SQL Server 建立 连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器
- java编程之JDBC
- Android笔记之在onCreate中执行View.getWidth()和View.getHeight()得到的结果均为0的解决方案