eins

模拟9 T1

(COGS上也有,链接http://218.28.19.228/cogs/problem/problem.php?pid=1426)

题目描述

  f0 = 0,f1 = 1, fn = fn-1 + fn-2(i >= 2),求fn mod p

分析

  反正就是矩阵乘法吧,然后快速幂优化。

  Fibonacci数列

  0    0  1

    ×       表示递推一次。

  1    1  1

 

  这样,递推n次,先计算那个2×2的矩阵的n次幂即可。

 1 /**************************************************
 2           Origin: Simulation 9 Problem 1
 3           Author: Xue Zhonghao
 4           Data: 2014-4-9 18:04:48 
 5           State: Accepted
 6 **************************************************/
 7 #include<cstdio>
 8 //#include<fstream>
 9 //using namespace std;
10 //ifstream fin("eins.in");
11 //ofstream fout("eins.out");
12 
13 #define LL unsigned long long
14 
15 LL P;
16 
17 struct matrix {
18     LL ch[2][2];
19     matrix operator * (matrix A) {
20       matrix B;
21       B.ch[0][0] = (ch[0][0]*A.ch[0][0] + ch[0][1]*A.ch[1][0]) % P;
22       B.ch[0][1] = (ch[0][0]*A.ch[0][1] + ch[0][1]*A.ch[1][1]) % P;
23       B.ch[1][0] = (ch[1][0]*A.ch[0][0] + ch[1][1]*A.ch[1][0]) % P;
24       B.ch[1][1] = (ch[1][0]*A.ch[0][1] + ch[1][1]*A.ch[1][1]) % P;
25       return B;
26     }
27     matrix() { ch[0][0] = 0; ch[0][1] = ch[1][0] = ch[1][1] = 1; }
28 };
29 
30 LL process(int n) {
31     if(n == 0) return 0%P;
32     if(n == 1) return 1%P;
33     matrix a, b;
34     while(!(n & 1)) {
35       n >>= 1;
36       b = b * b;
37     }
38     a = b;
39     while(n >>= 1) {
40       b = b * b;
41       if(n & 1) a = a * b;
42     }
43     return a.ch[0][1];
44 }
45 
46 int main(void)
47 {
48     freopen("eins.in", "r", stdin);
49     freopen("eins.out", "w", stdout);
50     int T, N;
51     LL ans;
52     scanf("%d", &T);//fin>>T;
53     for(int i = 0; i < T; ++i) {
54       scanf("%d%lld", &N, &P);//fin>>N>>P;
55       ans = process(N);
56       printf("%lld\n", ans);//fout<<ans<<endl;
57     }
58     fclose(stdin);
59     fclose(stdout);
60     return 0;
61 }

 

转载于:https://www.cnblogs.com/xuezhonghao/p/3657663.html

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

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

相关文章

V210 UART 整体流程

2.6内核以后&#xff0c;多数驱动都是以平台总线的方式编写&#xff0c;因此对于这种类型的驱动&#xff0c;实际就是要分成两个流程来分析 平台总线设备的构造&#xff0c;平台总线驱动的构造。 下面先分析平台总线设备的构造&#xff0c;平台总线设备里是硬件相关的信息&am…

安徽大学计算机考研学硕2019初试单科线,安徽大学2019年考研复试分数线已公布...

2019考研国家线及各大院校复试分数线已公布&#xff01;考生们自从得知考研成绩后都在忐忑的等待着。下面中公考研小编整理了“安徽大学2019年考研复试分数线已公布”相关内容&#xff0c;希望能对2019考研考生们有所帮助。点击查看&#xff1a;2019考研国家线一、第一志愿报考…

1 jquery对checkbox的简单操作

//全选和全不选 votefunction selectAll(){ if($(":checkbox").prop(checked)){ //$(":checkbox").removeAttr(checked);//attr不兼容了jquery1.6以上 $(":checkbox").prop(checked,false); }else{ $(":checkbox").prop(c…

e记法 python 底数_备战python二级

明天考试去&#xff0c;滚吧提醒与分值&#xff1a;1*40&#xff08;选择&#xff09;5*3&#xff08;填空&#xff09;101520比如今年的一个题目是要求随机抽一个手机品牌&#xff0c;这道题目的关键点在于你要使用seed()函数覆盖原来的给定的种子seed(1)&#xff0c;因为要求…

V210 UART TX 流程

1. 虽然V210的uart驱动是平台总线设备驱动模型&#xff0c;但实际上他还是以字符设备驱动存在&#xff0c;那么分析他的发送流程&#xff0c; 首先找到他的file_operations的write函数 drivers/char/tty_io.c tty_write(struct file *file, const char __user *buf, size_t cou…

浙江省计算机二级办公软件高级应用分值,浙江计算机二级高级办公软件word题分值是多少...

计算机文化基础试题集(浙江省计算机办公室软件等级考试悬赏分&#xff1a;10 - 离问题结束还有 12 天 23 小时一、选择题((1)&#xff5e;(30)每小题1分&#xff0c;(31)&#xff5e;(55)每小题2分&#xff0c;共80分)下列各题 A) 、B)、C)、D)四个选项中&#xff0c;只有一个选…

MVC中JSON字符长度超出限制的异常处理

异常信息如下&#xff1a; 使用 JSON JavaScriptSerializer 进行序列化或反序列化时出错。字符串的长度超过了为 maxJsonLength 属性设置的值。这个异常是在执行MVC中的JsonResult的时抛出的&#xff0c;根据异常的Message得知是序列化的字符串超出了maxJsonLength的限制。并得…

cookie 百科_cookie是什么

很多朋友并不了解cookie是什么&#xff0c;Cookie&#xff0c;有时也用其复数形式 Cookies&#xff0c;指某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密)。定义于 RFC2109 和 2965 中的都已废弃&#xff0c;最新取代的规范是 RFC6265…

pppd 源码修改1

1. pppd拨号成功后&#xff0c;会将解析到的dns服务器IP地址&#xff0c;写入/etc/ppp/resolv.conf 这样的话&#xff0c;gethostbyname_r并不会识别&#xff0c;并且&#xff0c;如果有启动两路pppd的话&#xff0c;后面一路会将resolv.conf文件重写。 因此&#xff0c;这块代…

学校计算机专业春联大全带横批,对联大全带横批_春节对联大全_新年春联合集...

上联&#xff1a;旧岁又添几个喜 下联&#xff1a;新年更上一层楼 横批&#xff1a;辞旧迎新上联&#xff1a;绿竹别其三分景 下联&#xff1a;红梅正报万家春 横批&#xff1a;春回大地上联&#xff1a;民安国泰逢盛世 下联&#xff1a;风调雨顺颂华年 横批&#xff1a;民泰国…

2014腾讯实习生招聘软件开发类附加题

附加题&#xff1a; 31. 一个珠宝商甲要鉴定41克以下的宝石&#xff08;40克及以下的任意重量&#xff09;&#xff0c;商甲只带一个天平和四个砝码&#xff0c;请问带哪四个砝码&#xff1f; 32. 一道有关utf-8编码的题。给了个例子&#xff1a;“我”的Unicode码是xxxx, 其ut…

location.href属于重定向还是转发_servlet2 单元测试、转发、重定向

解决服务端接收数据乱码问题。服务器默认采用 ISO8859-1 编码响应内容。// 1req.setCharacterEncoding("utf-8");// 2 byte[] bytes req.getParameter("username").getBytes("iso-8859-1"); System.out.println("username:" n…

如何在CSDN博客中的所贴的代码进行【代码块】显示

笔者最近很喜欢在csdn发一些技术博客&#xff0c;可是看了别人的博客&#xff0c;有代码的地方总是可以显示出代码块&#xff0c;而自己贴上去的代码总是没有。刚开始还以为CSDN博客里面的编辑功能有&#xff0c;可是找来找去都没有找到。后来才发现原来需要自己在源码上进行修…

学安全工程用不用计算机,上重点大学的末流专业,不如上普通大学的重点专业,你赞成吗?...

上重点大学的末流专业&#xff0c;不如上普通大学的重点专业&#xff0c;你赞成吗&#xff1f;首先&#xff0c;我对这个说法不赞成&#xff0c;这个说法是错误的。可以说&#xff1a;基本上说的是对的也是错的。说对的&#xff0c;是这个思路是对的&#xff0c;说错&#xff0…

ORACLE复杂查询之连接查询

一、传统的连接查询 1、交叉连接&#xff1a;返回笛卡尔积 WHERE中限定查询条件&#xff0c;可以预先过滤掉掉不符合条件的记录&#xff0c;返回的只是两个表中剩余记录&#xff08;符合条件的记录&#xff09;的笛卡尔积。 2、内连接&#xff1a;参与连接的表地位平等&#xf…

12306加密传输_三大运营商发5G消息白皮书:短消息服务升级,支持加密传输

4月8日&#xff0c;中国电信、中国移动、中国联通联合举行线上发布会&#xff0c;共同发布《5G消息白皮书》。《白皮书》阐述了5G消息的核心理念&#xff0c;明确了相关业务功能及技术需求&#xff0c;提出了对5G消息生态建设的若干构想。据介绍&#xff0c;5G消息业务是终端原…

winpe修复计算机无法启动,用winpe来修复无法进入系统的问题

很多网友都碰到过有的时候无法进入系统&#xff1f;不知道该怎么操作&#xff0c;U大师告诉你一个方法&#xff1a;那就是用winpe来修复无法进入系统的问题,可以先在硬盘上安装一个PE维护系统&#xff0c;重启电脑时在多重启动菜单选择Windows PE&#xff0c;系统便会自动进入P…

详细解说 STL 排序(Sort)

0 前言: STL&#xff0c;为什么你必须掌握 对于程序员来说&#xff0c;数据结构是必修的一门课。从查找到排序&#xff0c;从链表到二叉树&#xff0c;几乎所有的算法和原理都需要理解&#xff0c;理解不了也要死记硬背下来。幸运的是这些理论都已经比较成熟&#xff0c;算法也…

停止和删除Hasplms服务(二)--HASP运行环境

这一篇文章继续上一篇“停止和删除Hasplms服务&#xff08;一&#xff09;”讨论HASP运行环境的安装和卸载&#xff0c;这里的内容对软件的发行者有参考价值&#xff0c;普通用户也可以用这里的方法管理HASP加密锁。 首先到Sentinel官网下载HASP运行环境管理工具 http://sentin…

ad9生成坐标文件_GROMACS各种文件格式介绍

CPT文件&#xff1a;该文件为模拟断点文件(check point&#xff0c;.cpt)。该文件为模拟过程固定时间间隔产生&#xff0c;保存模拟系统所有信息。该文件一部分可以在能量文件(.edr)找到&#xff0c;一部分可以在双精度轨迹文件(.trr)中找到。如果模拟因为外界条件中断&#xf…