通过矩阵快速幂找循环节,注意要每一层都要找一次循环节。。。发个题解仅供大家对拍。。。

#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相关推荐

  1. HDU 4291 A Short problem 矩阵快速幂 循环节

    题解思路: 构造矩阵,矩阵乘法计算还是t; 需要找循环节;   (注意因为是复合函数,不可以在里面取mod) 暴力跑只有可以找到g(222222224)%1e9==g(0)%1e9; 所以 g(g(n ...

  2. hdu 4291 矩阵幂 循环节

    http://acm.hdu.edu.cn/showproblem.php?pid=4291 凡是取模的都有循环节-----常数有,矩阵也有,并且矩阵的更奇妙: g(g(g(n))) mod 109  ...

  3. hdu 5008 Boring String Problem(后缀数组+rmq)

    题目链接:hdu 5008 Boring String Problem 题意: 给你一个字符串,有q个询问,每次询问该字符串所有的子串中字典序第k小的是哪个串,输出位置,如果有多个位置,输出最靠左的那 ...

  4. HDU.1002 A + B Problem II

    原题 HDU.1002 A + B Problem II 分类 杂题·大位整数运算 题意 计算从任意两个长度在1000以内的正整数的和. 输入/输出 要求与格式 输入内容 最开始一行开始输入样例数,对 ...

  5. HDU.1000 A + B Problem

    前言 本人目前大二,目前正值新型肺炎疫情期间,空余时间与其在家里无所事事,倒不如每天刷上一两道算法题.写写解题报告总结总结. 所以每天都写至少一篇题解博客吧,同时也希望全国的疫情能快速消退,加油! 原 ...

  6. 贪心 FZU 2013 A short problem

    题目传送门 1 /* 2 题意:取长度不小于m的序列使得和最大 3 贪心:先来一个前缀和,只要长度不小于m,从m开始,更新起点k最小值和ans最大值 4 */ 5 #include <cstdi ...

  7. 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 ...

  8. hdu 3706 Second My Problem First 单调队列

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3706 Second My Problem First Time Limit: 12000/4000 M ...

  9. HDU 1402 A * B Problem Plus FFT

    A * B Problem Plus 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=1402 Description Calculate A * B. ...

最新文章

  1. EK算法网络流模板hdu1532
  2. 收藏喜+1!值得使用的100个Python小技巧
  3. 【机器学习基础】通俗易懂无监督学习K-Means聚类算法及代码实践
  4. python网络编程——IO多路复用之epoll
  5. python3学习日志Gui编程
  6. Java 单例模式详解(转)
  7. powershell 设置代理_WSL2中使用proxychains ng代理加速
  8. How to Become a Better Learner
  9. Typora-Markdown编辑器语法
  10. springboot内存占用过高问题排查 - jvm内存使用分析
  11. 帆软报表列表_报表软件FineReport各类函数大全
  12. https安全证书过期的原因
  13. NIPS2022上的图神经网络相关论文总结
  14. 25 岁,毕业写前端的这三年,多益网络java面试
  15. 方舟手游修改服务器难度,方舟生存进化单机版怎么调难度等级
  16. VS解决BEX错误但无法关闭DEP保护的问题
  17. java开发系统内核:放大招!为系统开发星球大战游戏程序
  18. Vivado使用:综合篇(二)综合选项设置
  19. 球面距离计算方式(杭州到各城市的球面距离计算球面距离)
  20. openBrowser

热门文章

  1. 钉钉对接金蝶云星空单据模板-日常费用报销
  2. scanner 获取控制台信息_通过Scanner从控制台获取数据
  3. U启动盘重装系统,遇到ACPI_BIOS_ERROR
  4. 基于html的网上点餐系统,一种基于客户端的网上点餐系统的制作方法
  5. 一阶低通滤波介绍及simulink模型
  6. 微信H5小游戏互动营销的使用场景
  7. 访谈编码怎么做_用户调研报告如何做?访谈-整理-报告?
  8. C #error 用法
  9. 手机链接电脑 Visual Studio Code 经常连接不上
  10. 我心中的vi 编辑神器