(转载)HDU4565
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4565
这个博客讲的比较好:http://blog.csdn.net/ljd4305/article/details/8987823
题意:给定a,b,,n,m,求Sn
- #include <iostream>
- #include <cstdio>
- #include <cstring>
- #include <algorithm>
- #include<cmath>
- #include<sstream>
- #include<string>
- using namespace std;
- __int64 b,k,n,mod;
- struct matrix
- {
- __int64 m[][];
- };
- matrix a,per,s,ans;
- void init()//初始化操作
- {
- s.m[][]=((*((k%mod)*(k%mod))%mod)%mod+(*b)%mod)%mod;
- s.m[][]=(*(k%mod))%mod;
- s.m[][]=;
- s.m[][]=;
- a.m[][]=(*(k%mod))%mod;
- a.m[][]=;
- a.m[][]=(((b%mod)-((k%mod)*(k%mod))%mod)+mod)%mod;
- a.m[][]=;
- }
- matrix mul(matrix x,matrix y)
- {
- matrix temp;
- memset(temp.m,,sizeof(temp.m));
- for(int i=;i<;i++)
- for(int j=;j<;j++)
- for(int k=;k<;k++)
- temp.m[i][j]=(temp.m[i][j]+x.m[i][k]*y.m[k][j])%mod;
- return temp;
- }
- matrix mpow(matrix A,__int64 n)
- {
- matrix B;
- memset(B.m,,sizeof(B.m));
- for(int i=;i<;i++)
- B.m[i][i]=;
- while(n>)
- {
- if(n&)
- B=mul(B,A);
- A=mul(A,A);
- n>>=;
- }
- return B;
- }
- int main()
- {
- while(~scanf("%I64d%I64d%I64d%I64d",&k,&b,&n,&mod))
- {
- init();
- if(n==)
- {
- cout<<(*(k%mod))%mod<<endl;
- continue;
- }
- else if(n==)
- {
- cout<<((*(k%mod)*(k%mod))%mod+(*(b%mod))%mod)%mod<<endl;
- continue;
- }
- else
- {
- ans=mpow(a,n-);
- ans=mul(s,ans);
- cout<<ans.m[][]<<endl;
- }
- }
- return ;
- }
(转载)HDU4565的更多相关文章
- Crystal Clear Applied: The Seven Properties of Running an Agile Project (转载)
作者Alistair Cockburn, Crystal Clear的7个成功要素,写得挺好. 敏捷方法的关注点,大家可以参考,太激动所以转载了. 原文:http://www.informit.com ...
- RTP与RTCP协议介绍(转载)
RTSP发起/终结流媒体.RTP传输流媒体数据 .RTCP对RTP进行控制,同步.RTP中没有连接的概念,本身并不能为按序传输数据包提供可靠的保证,也不提供流量控制和拥塞控制,这些都由RTCP来负责完 ...
- 《Walking the callstack(转载)》
本文转载自:https://www.codeproject.com/articles/11132/walking-the-callstack Download demo project with so ...
- [转载]MVVM模式原理分析及实践
没有找到很好的MVVM模式介绍文章,简单找了一篇,分享一下.MVVM实现了UI\UE设计师(Expression Blend 4设计界面)和软件工程师的合理分工,在SilverLight.WPF.Wi ...
- [转载]:STM32为什么必须先配置时钟再配置GPIO
转载来源 :http://blog.csdn.net/fushiqianxun/article/details/7926442 [原创]:我来添两句,就是很多同学(包括我)之前搞低端单片机,到了stm ...
- [转载]从MyEclipse到IntelliJ IDEA-让你摆脱鼠标,全键盘操作
从MyEclipse转战到IntelliJ IDEA的经历 注转载址:http://blog.csdn.net/luoweifu/article/details/13985835 我一个朋友写了一篇“ ...
- TCP同步与异步,长连接与短连接【转载】
原文地址:TCP同步与异步,长连接与短连接作者:1984346023 [转载说明:http://zjj1211.blog.51cto.com/1812544/373896 这是今天看到的一篇讲到T ...
- 在CentOS 7/6.5/6.4 中安装Java JDK 8(转载)
转载在CentOS 7/6.5/6.4 中安装Java JDK 8 首先,在你的服务器上运行一下更新. yum update 然后,在您的系统上搜索,任何版本的已安装的JDK组件. rpm -qa | ...
- 用C#实现MD5的加密(转载)
方法一 首先,先简单介绍一下MD5 MD5的全称是message-digest algorithm 5(信息-摘要算法,在90年代初由mit laboratory for computer scien ...
随机推荐
- (DP)Best Time to Buy and Sell Stock
题目: Say you have an array for which the ith element is the price of a given stock on day i. If you w ...
- JS获取按下的键盘字符
<html> <head> KeyPress Test!<hr> <script language="javascript"> fu ...
- {}+[] = ? 和 []+{} = ? 浅谈JS数据类型转换
参加公司技术嘉年华第一季(前端.服务端)的间隙,陈导问了我一个问题:{}+[] 和 []+{}两个表达式的值分别是什么?根据我的理解我觉得结果应该都是"[object Object]&quo ...
- 编码规范(CSS)
code { font-family: "PT Mono", Menlo, "Courier New", monospace; padding: 2px 4px ...
- Visual Studio 2015 使用ODP.net进行EF开发
刚转了新公司,以前公司都是用VS+MSSQL作为开发工具的 现在新公司由于数据库是Oracle,而且新公司比较小规模,开发团队也没有什么规范 访问数据库的方式一直使用ADO.net的DataTable ...
- 《Swift开发指南》国内第一本Swift图书上市了
<Swift开发指南>国内第一本Swift图书上市了 既<courseId=799262">苹果Swift编程语言开发指南>视频教程地址:courseId=79 ...
- 分析NTFS文件系统得到特定文件的内容
找某一个文件的内容(如要读取文件D:\dir\dir2\text.txt,详细过程例如以下: (1)读取分区表/分区链表信息,找到磁盘F的起始扇区. (2)读取D盘的第一个扇区(分区的BOOTSETO ...
- 一个用 Cumulative Penalty 培训 L1 正规 Log-linear 型号随机梯度下降
Log-Linear 模型(也叫做最大熵模型)是 NLP 领域中使用最为广泛的模型之中的一个.其训练常採用最大似然准则.且为防止过拟合,往往在目标函数中增加(能够产生稀疏性的) L1 正则.但对于 ...
- Js 实现 C# Format方法
参考网友的, 挺好用的: String.prototype.format = function (args) { if (arguments.length > 0) { var result = ...
- 创建一个简单的配置android编译环境的脚本
由于有多个Android项目,每个项目配置编译环境时选项都不同,所以尝试写一个sh脚本来完成这个功能. 首先进入bin文件夹,新建一个文件enbuild $ cd ~/bin $ touch ...