HDU 4565So Easy!2012长沙邀请赛A题(共轭构造+矩阵的快速幂)
So Easy!
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 910 Accepted Submission(s): 247
Where a, b, n, m are positive integers.┌x┐is the ceil of x. For example, ┌3.14┐=4. You are to calculate S n.
You, a top coder, say: So easy!
#include<iostream>
#include<cmath>
#include<cstring>
#include<string>
#include<cstdio>
using namespace std;
__int64 a,b,n,m;
__int64 ret[2][2],p[2][2],tmp[2][2];void init()
{ret[0][0]=2*a;ret[0][1]=-(a*a-b);ret[1][0]=1;ret[1][1]=0;p[0][0]=2*a;p[0][1]=-(a*a-b);p[1][0]=1;p[1][1]=0;
}void cal1() //矩阵的平方!&1
{int i,j,k;for(i=0;i<2;i++)for(j=0;j<2;j++){tmp[i][j]=p[i][j];p[i][j]=0;}for(i=0;i<2;i++)for(j=0;j<2;j++)for(k=0;k<2;k++)p[i][j]=((p[i][j]+tmp[i][k]*tmp[k][j])%m+m)%m;
}void cal2() //矩阵的乘法&1
{int i,j,k;for(i=0;i<2;i++)for(j=0;j<2;j++){tmp[i][j]=ret[i][j];ret[i][j]=0;}for(i=0;i<2;i++)for(j=0;j<2;j++)for(k=0;k<2;k++)ret[i][j]=((ret[i][j]+tmp[i][k]*p[k][j])%m+m)%m;
}void fastmi()
{n-=2;while(n){if(n&1){cal2();n--;}else{cal1();n>>=1;}}
}int main()
{while(~scanf("%I64d%I64d%I64d%I64d",&a,&b,&n,&m)){if(n==1){printf("%I64d\n",2*a%m);continue;}init();fastmi();//C1=2*a C0=2printf("%I64d\n",((ret[0][0]*2*a+ret[0][1]*2)%m+m)%m);}return 0;
}
转载于:https://www.cnblogs.com/bbsno1/p/3260445.html
HDU 4565So Easy!2012长沙邀请赛A题(共轭构造+矩阵的快速幂)相关推荐
- 题35.C++练习-3-3快速幂 等比数列求和
文章目录 题35.C++练习-3-3快速幂 等比数列求和 一.题目 二.题解 题35.C++练习-3-3快速幂 等比数列求和 一.题目 二.题解 本题若使用等比数列求和公式+快速幂当然会因为幂结果数据 ...
- 循环矩阵的快速幂(bzoj 2510: 弱题)
2510: 弱题 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 408 Solved: 218 [Submit][Status][Discuss] ...
- HDU 1248 寒冰王座(全然背包:入门题)
HDU 1248 寒冰王座(全然背包:入门题) http://acm.hdu.edu.cn/showproblem.php?pid=1248 题意: 不死族的巫妖王发工资拉,死亡骑士拿到一张N元的钞票 ...
- HDU 1576 A/B(数论简单题,求逆元)
A/B Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
- 2012年职称计算机,职称计算机考试2012年word2003真题试题
职称计算机考试2012年word2003真题试题 导语:为帮助考生有效备考2017年职称计算机考试,百分网小编整理了职称计算机历年真题,希望对您通过职称计算机考试有所帮助! 1 设置显示操作向导. 2 ...
- HDU - 4990 Reading comprehension(矩阵快速幂,水题)
题目链接:点击查看 题目大意:给出一段程序,进行优化后提交 题目分析:其实就是找规律,大水题一个,偶尔也是需要做做水题找找自信(逃) 先将题目中的程序拿下来,跑上100项,然后拿到oeis里找一下规律 ...
- HDU - 4565 So Easy!(共轭构造+推公式+矩阵快速幂)
题目链接:点击查看 题意:给出a,b,m,n,求 解析:题意一目了然,此题的关键是推出解决问题的公式. 首先,题目要求括号内n次方后向上取整再模m,而这里给到的a与b的关系接下来也会用到:<b& ...
- 【 HDU - 5363】Key Set(水题,快速幂,组合数学)
题干: soda has a set SS with nn integers {1,2,-,n}{1,2,-,n}. A set is called key set if the sum of int ...
- HDU 5863 cjj's string game ( 16年多校10 G 题、矩阵快速幂优化线性递推DP )
题目链接 题意 : 有种不同的字符,每种字符有无限个,要求用这k种字符构造两个长度为n的字符串a和b,使得a串和b串的最长公共部分长度恰为m,问方案数 分析 : 直觉是DP 不过当时看到 n 很大.但 ...
最新文章
- python dry原则_python使用建议与技巧分享(一)
- 【CV论文阅读】Rank Pooling for Action Recognition
- Oracle中如何获取当天时间的最开始的时间和最结尾的时间:
- excel营销数据分析宝典 pdf_你见过最漂亮的 Excel 表格什么样?
- android AVB2.0(六)Super动态分区介绍
- DNS服务启动时卡在:Generating /etc/rndc.key:
- Windows Server 2008 R2 Tomcat 开机自启动
- 真·不怪云原生:探寻IT大厂逐渐云化的秘密!
- 华为 静态路由与FTP备份
- 非参数统计单样本非参数检验之符号检验
- 破解工具之调试器和相关破解案例视频教程大全
- 华为USG6000V防火墙的初始密码及修改密码的操作
- 机器学习 --- 概率图 - 概述
- html5 m3u8 直播,html5 让video支持m3u8播放
- C6455CSL芯片支持库:第二节 EMAC外设
- zcmu1684 求余数
- amd为什么还用针脚_闲聊CPU针脚 一年一换都怪AMD不给力?
- 微软工程院 硕士_微软工程院招聘NLP算法研究员实习生|NLP算法工程师实习生_北京实习招聘...
- 安卓开发 -- 定时重启设备
- 分类模型训练完之后,测试效果极差可能原因分析
热门文章
- python学了可以干什么-学了Python都能干什么,哪个最赚钱?
- python科学计算基础教程pdf下载-用Python做科学计算 高清晰PDF
- python批量下载文件-python使用selenium实现批量文件下载
- python培训好学吗-开平北大青鸟:Python培训怎么选?Python好学吗?
- python学费多少-培训python学费多少?
- python读音有道词典-利用python实现命令行有道词典的方法示例
- python学精通要多久-学习Python零基础需要学多久?
- python程序员在公司都是做什么的-为什么企业很难招聘到好的python程序员?
- python安装第三方库-python第三方库的四种安装方法
- 用python画简单的动物-使用Python的turtle画小绵羊