HDU 4291 A Short problem
通过矩阵快速幂找循环节,注意要每一层都要找一次循环节。。。发个题解仅供大家对拍。。。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;#define MAXN 2
#define LL long longLL MOD;
struct Matrix
{LL data[MAXN][MAXN];void init(){for(LL i=0; i<MAXN; i++)for(LL j=0; j<MAXN; j++)data[i][j]=0;}
};Matrix Multy(Matrix m1,Matrix m2)
{Matrix r;r.init();for(LL i=0; i<2; i++)for(LL j=0; j<2; j++)for(LL k=0; k<2; k++)r.data[i][j]=(r.data[i][j]+(m1.data[i][k]*m2.data[k][j])%MOD)%MOD;return r;
}
Matrix Fast_mi(Matrix ma,LL m)
{Matrix r;r.init();for(LL i=0; i<2; i++)r.data[i][i]=1;while(m){if(m&1)r=Multy(r,ma);ma=Multy(ma,ma);m=m>>1;}return r;
}Matrix a;int main()
{//freopen("input.txt", "r", stdin);a.data[0][0] = 3;a.data[0][1] = 1;a.data[1][0] = 1;a.data[1][1] = 0;LL n, g, i, f, j;while(cin >> n){n %= 240;g = n;if(!g){cout << "0" << endl;continue;}MOD = 183120;g = Fast_mi(a, n - 1).data[0][0];MOD = 222222224;g = Fast_mi(a, g - 1).data[0][0];MOD = 1000000007;g = Fast_mi(a, g - 1).data[0][0];cout << g << endl;}
}
HDU 4291 A Short problem相关推荐
- HDU 4291 A Short problem 矩阵快速幂 循环节
题解思路: 构造矩阵,矩阵乘法计算还是t; 需要找循环节; (注意因为是复合函数,不可以在里面取mod) 暴力跑只有可以找到g(222222224)%1e9==g(0)%1e9; 所以 g(g(n ...
- hdu 4291 矩阵幂 循环节
http://acm.hdu.edu.cn/showproblem.php?pid=4291 凡是取模的都有循环节-----常数有,矩阵也有,并且矩阵的更奇妙: g(g(g(n))) mod 109 ...
- hdu 5008 Boring String Problem(后缀数组+rmq)
题目链接:hdu 5008 Boring String Problem 题意: 给你一个字符串,有q个询问,每次询问该字符串所有的子串中字典序第k小的是哪个串,输出位置,如果有多个位置,输出最靠左的那 ...
- HDU.1002 A + B Problem II
原题 HDU.1002 A + B Problem II 分类 杂题·大位整数运算 题意 计算从任意两个长度在1000以内的正整数的和. 输入/输出 要求与格式 输入内容 最开始一行开始输入样例数,对 ...
- HDU.1000 A + B Problem
前言 本人目前大二,目前正值新型肺炎疫情期间,空余时间与其在家里无所事事,倒不如每天刷上一两道算法题.写写解题报告总结总结. 所以每天都写至少一篇题解博客吧,同时也希望全国的疫情能快速消退,加油! 原 ...
- 贪心 FZU 2013 A short problem
题目传送门 1 /* 2 题意:取长度不小于m的序列使得和最大 3 贪心:先来一个前缀和,只要长度不小于m,从m开始,更新起点k最小值和ans最大值 4 */ 5 #include <cstdi ...
- HDOJ 1016 HDU 1016 Prime Ring Problem ACM 1016 IN HDU
题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=1016 题目描述: Prime Ring Problem Time Limit: 4000/2000 ...
- hdu 3706 Second My Problem First 单调队列
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3706 Second My Problem First Time Limit: 12000/4000 M ...
- HDU 1402 A * B Problem Plus FFT
A * B Problem Plus 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=1402 Description Calculate A * B. ...
最新文章
- EK算法网络流模板hdu1532
- 收藏喜+1!值得使用的100个Python小技巧
- 【机器学习基础】通俗易懂无监督学习K-Means聚类算法及代码实践
- python网络编程——IO多路复用之epoll
- python3学习日志Gui编程
- Java 单例模式详解(转)
- powershell 设置代理_WSL2中使用proxychains ng代理加速
- How to Become a Better Learner
- Typora-Markdown编辑器语法
- springboot内存占用过高问题排查 - jvm内存使用分析
- 帆软报表列表_报表软件FineReport各类函数大全
- https安全证书过期的原因
- NIPS2022上的图神经网络相关论文总结
- 25 岁,毕业写前端的这三年,多益网络java面试
- 方舟手游修改服务器难度,方舟生存进化单机版怎么调难度等级
- VS解决BEX错误但无法关闭DEP保护的问题
- java开发系统内核:放大招!为系统开发星球大战游戏程序
- Vivado使用:综合篇(二)综合选项设置
- 球面距离计算方式(杭州到各城市的球面距离计算球面距离)
- openBrowser