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

题解思路:

构造矩阵,矩阵乘法计算还是t;

需要找循环节;   (注意因为是复合函数,不可以在里面取mod)

暴力跑只有可以找到g(222222224)%1e9==g(0)%1e9;

所以 g(g(n)%222222224)%1e9==g(g(n));

之后还可以跑出2个循环节

从内到外

240  183120 222222224 1e9+7

#include<cstdio>
#include<iostream>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>
#include<set>
#include<map>
#include<stack>#define mem(a,b) memset(a,b,sizeof(a))
#define ll long long
#define int long longconst int maxn=65000+10;using namespace std;int prime[maxn],is_prime[maxn];struct Matrix
{int nmap[3][3];
};Matrix initA={0,0,0,0,1,0,0,0,1,
};Matrix T=
{0,0,0,0,0,0,0,0,0,
};void is_p(){for(int i=2;i<=maxn;i++){if(!is_prime[i])for(int j=i+i;j<maxn;j+=i){is_prime[j]=1;}}
}ll pow(ll a,ll b,ll mod)
{ll sum=1;while(b){if(b&1) sum=(sum*a)%mod;a=(a*a)%mod;b>>=1;}return sum%mod;
}void put(Matrix x)
{for(int i=1;i<=2;i++){for(int j=1;j<=2;j++){cout<<x.nmap[i][j]<<" ";}cout<<endl;}cout<<endl;
}Matrix Matrix_mul(Matrix a,Matrix b,int mod)
{Matrix A=T;for(int k=1;k<=2;k++){for(int i=1;i<=2;i++){if(a.nmap[i][k])for(int j=1;j<=2;j++){A.nmap[i][j]+=(a.nmap[i][k]*b.nmap[k][j])%mod;A.nmap[i][j]%=mod;}}}return A;
}Matrix Matrix_smul(Matrix a,int b,int mod)
{Matrix A=initA;if(b==-1) return a;while(b){if(b&1) A=Matrix_mul(A,a,mod);a=Matrix_mul(a,a,mod);b>>=1;}return A;
}#undef int
int main(){
#define int long longMatrix C={0,0,0,0,3,1,0,1,0,};Matrix D={0,0,0,0,0,0,0,1,0,};int n=1,mod=1e9+7;while(~scanf("%lld",&n)){n%=240;mod=183120;Matrix B=Matrix_smul(C,n,mod);B=Matrix_mul(B,D,mod);// put(B)mod=222222224;B=Matrix_smul(C,B.nmap[1][1],mod);B=Matrix_mul(B,D,mod);// put(B);mod=1e9+7;B=Matrix_smul(C,B.nmap[1][1],mod);B=Matrix_mul(B,D,mod);// put(B);printf("%lld\n",B.nmap[1][1]);}// }
/*    int a=1,b=0,c,mod=240,ok=0;//跑循环节的代码...for(int i=1;;i++){c=(3*a+b)%mod;b=a%mod;a=c%mod;if(a==1&&b==0){cout<<i<<endl;ok++;if(ok>10) break;}}
*/return 0;
}

 

转载于:https://www.cnblogs.com/minun/p/10473763.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/412216.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

今早服务器出现的问题

开始发现服务器不能访问&#xff0c;以为又是网线的问题&#xff0c;叫人弄了后能访问了&#xff0c;后来发了条弹出窗口的公告&#xff0c;发现弹出窗口不能显示&#xff0c;再后来干脆整个网站都没法访问了&#xff0c;赶忙去机房看看&#xff0c;它说磁盘空间不足&#xff0…

c语言向文件中写入字符串_C语言中定义字符串的两种方式及其比较

先看如下代码&#xff1a;以上用两种方式定义一个字符串&#xff1a;1、定义一个char * 类型指针&#xff0c;指向字符串首字符首地址。2、定义一个数组&#xff0c;数组里存放元素为字符串各个字符0,其中0为码0值&#xff0c;编译器会自动在字符串的末尾添加此值。先看这两个&…

define 字符串_C++如何使用define关键字以便使用中文编程?

先上代码&#xff1a;#include <iostream> #define 使用 using #define 整型 int #define 浮点 double #define 命名空间 namespace #define IO流 std #define 输出文本 cout #define 输入文本 cin #define 换行 endl #define 输出流 << #define 输入流 >> #…

JavaScript和ASP.NET的传值

因项目需要&#xff0c;最近一段时间里对于js的开发有了一定的了解。在基于ASP.NET的开发中&#xff0c;经常性的需要JS脚本来增加一些客户端的控制&#xff0c;比如限制输入字符&#xff0c;日期控件等等。一般这样的控制基本上在客户端完成就比较好&#xff0c;无需回传到服务…

前端学习(2879)歌谣学习篇原生js和canvas实现弹幕功能

我是歌谣 放弃很难 坚持一定很酷 2021继续加油 目录结构 文件地址 源码地址后面可见 源码文件 index.css body { margin: 0; } .container { width: 1000px; margin: 0 auto; } .video-wrapper { position: relative; } .video-wrapper video { width: 100%; } .video…

ThreadLocal系列(二)-InheritableThreadLocal的使用及原理解析

ThreadLocal系列之InheritableThreadLocal的使用及原理解析&#xff08;源码基于java8&#xff09; 上一篇&#xff1a;ThreadLocal系列&#xff08;一&#xff09;-ThreadLocal的使用及原理解析 下一篇&#xff1a;ThreadLocal系列&#xff08;三&#xff09;-TransmittableTh…

oracle数据库跟mysql的区别_关于Oracle数据库与MySQL数据库的几点区别

Oracle数据库与MySQL数据库的区别是本文我们主要要介绍的内容&#xff0c;接下来我们就开始介绍这部分内容&#xff0c;希望能够对您有所帮助。Oracle与MySQL的区别&#xff1a;1.在Oracle中用select * from all_users显示所有的用户&#xff0c;而在MYSQL中显示所有数据库的命…

年轻讨厌而又美丽可爱的城市

年轻讨厌而又美丽可爱的城市&#xff0d;&#xff0d;深圳。上海是什么样的&#xff1f;真要去看看。一只乌鸦坐在高高的树枝上&#xff0c;一只兔子看见后就问它&#xff1a;“我可以像你一样 坐着不动吗&#xff1f;”乌鸦说&#xff1a;“当然可以。”于是兔子便坐在树底下。…

汤姆逊灯

由 MIT (Massachusetts Institute of Technology) 哲学教授在1954年提出&#xff1a;考虑一盏开关由一个复杂的定时器控制的灯。实验开始时&#xff0c;灯是开着的&#xff0c;并且正好开一分钟。这一分钟结束时定时器把灯关闭&#xff0c;这样持续半分钟。之后&#xff0c;又把…

python def函数_Python教程之Lambda表达式知识概述

在Python中&#xff0c;除了def之外&#xff0c;还提供了一种生成函数对象的表达式形式&#xff0c;即Lambda表达式&#xff0c;它可以创建小的匿名函数&#xff0c;起到一个函数速写的作用。接下来的好程序员Python学习课程就给大家分享Lambda表达式相关的知识点。Lambda表达式…

提示以下的错误信息:“未能在设计视图中打开, 块中,以不同方式将值括起来 ”...

问题搞定&#xff0c;其实这是个string的语法问题&#xff0c;里面和外面的引号不能相同&#xff0c;否则无法识别哪个是右引号的结束点。 举个例子说吧&#xff0c;就想刚才我的 "<%#"list.aspx?typeid"DataBinder.Eval(Container.DataItem,"IDs"…

Markdown简单上手

标题 # 内容 一级标题 二级标题 三级标题 四级标题 五级标题 六级标题 字体 1. 加粗(CtrlB) **加粗** 2. 斜体(CtrlI) *斜体* 3. 斜体加粗(CtrlBI) ***斜体加粗*** 4. 删除线(CtrlT) ~~删除线~~ 加粗斜体斜体加粗删除线 引用 >引用 >>引用 引用 分割线 --- ---- ___ *…

MySQL全文索引模糊查询_mysql全文索引之模糊查询

旧版的MySQL的全文索引只能用在MyISAM表格的char、varchar和text的字段上。不过新版的MySQL5.6.24上InnoDB引擎也加入了全文索引&#xff0c;所以具体信息大家可以随时关注官网&#xff0c;下面我来谈谈mysql全文索引的用法,网上很多啦&#xff0c;我只讲讲我所了解滴部分哈&am…

html中内容超出显示省略号的方法

html中内容超出显示省略号的方法 本博客主要介绍 前端开发中文本过多&#xff0c;以省略号显示。 效果如图&#xff1a; 单行&#xff1a; <!--单行--> <p class"pl">这个属性定义溢出元素内容区的内容会如何处理。如果值为 hidden&#xff0c;当点击hid…

vue 多选自动触发_Vue,初次邂逅(二)

一、前言二、Vue常用指令2.1 什么是指令&#xff1f;指令 (Directives) 是带有 v- 前缀的特殊特性。指令特性的预期值是&#xff1a;单个 JavaScript 表达式。指令的职责是&#xff0c;当表达式的值改变时&#xff0c;将其产生的连带影响&#xff0c;响应式地作用于 DOM。 例如…