(转载)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 ...
随机推荐
- Find the largest multiple of 3 解答
Question Given an array of non-negative integers. Find the largest multiple of 3 that can be formed ...
- 【LeetCode练习题】Valid Palindrome
Valid Palindrome Given a string, determine if it is a palindrome, considering only alphanumeric char ...
- win10无法使用内置管理员账户打开
对于这种问题其实对于专业版用户倒不是难事,很容易解决,具体方法如下: 首先WIN+R输入:gpedit.msc,打开组策略,找到“计算机配置”里面的“Windows设置”,打开“安全设置” -> ...
- Hive 5、Hive 的数据类型 和 DDL Data Definition Language)
官方帮助文档:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL Hive的数据类型 -- 扩展数据类型data_t ...
- GCD 倒计时
今天在Code4App上看了一个GCD倒计时的Demo,觉得不错代码贴出来备用 -(void)startTime{ __block ; //倒计时时间 dispatch_queue_t queue = ...
- 玩程序 之 一 . 字符串处理工具(可通过C#脚本扩展)
平常喜欢写点小东西玩玩,既可以娱乐自己满足自己的虚荣心,又可以方便工作和学习,今天且拿出一个来,与大家一起分享! 1. 软件介绍 言归正传,先看看需求,有这样一串字符串 abc,def,ghi,jk ...
- java获取指定长度随机数(版本1)
获取指定长度随机数,含大小写字母和数字 package org.sw; import java.util.Random; /** * 得到指定位数的随机数 * @author mengzw * @si ...
- 用window.print()打印指定div里面的内容
用window.print()打印指定div里面的内容 今天客户让添加个打印证照功能,直接用window.print()打印的是整个页面,而用以下方法就可以只打印证明了 <!--window.p ...
- [android开发之内容更新类APP]二、这几日的结果
android教程即将開始 话说这开了blog之后,就一直在试用自己的app,发现.TM的真的非常不爽,不好用,好吧.本来打算放弃了.只是看到手机里还有还有一个坑,干脆又一次做一个吧. 原来的神回复A ...
- C函数的实现(strcpy,atoi,atof,itoa,reverse)
在笔试面试中经常会遇到让你实现C语言中的一些函数比如strcpy,atoi等 1. atoi 把字符串s转换成数字 int Atoi( char *s ) { int num = 0, i = 0; ...