HDUnbsp;2855nbsp;Fibonaccinbsp;Check-up(数…

2023-10-20 03:38

本文主要是介绍HDUnbsp;2855nbsp;Fibonaccinbsp;Check-up(数…,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2855

 

这题找规律比较难

 

代码:






#include<stdio.h>
int m;
__int64 a[2][2],b[2][2];

void Mul(__int64 c[2][2],__int64 d[2][2])
{
   __int64 x[2][2],y[2][2];

   x[0][0]=c[0][0];x[0][1]=c[0][1];
   x[1][0]=c[1][0];x[1][1]=c[1][1];

   y[0][0]=d[0][0];y[0][1]=d[0][1];
   y[1][0]=d[1][0];y[1][1]=d[1][1];

   c[0][0]=(x[0][0]*y[0][0]+x[0][1]*y[1][0])%m;
   c[0][1]=(x[0][0]*y[0][1]+x[0][1]*y[1][1])%m;
   c[1][0]=(x[1][0]*y[0][0]+x[1][1]*y[1][0])%m;
   c[1][1]=(x[1][0]*y[0][1]+x[1][1]*y[1][1])%m;
}

void POW(int n)
{
   if(n==1)
       return;
   POW(n/2);
   Mul(a,a);
   if(n%2==1)
       Mul(a,b);
   a[0][0]%=m;a[0][1]%=m;
   a[1][0]%=m;a[1][1]%=m;
}

int main()
{
   int ncase,n;
   scanf("%d",&ncase);
   while(ncase--)
   {
       scanf("%d%d",&n,&m);
       if(n==0)
           printf("0\n");
       else if(n==1)
           printf("%d\n",1%m);
       else
       {
           a[0][0]=b[0][0]=3;a[0][1]=b[0][1]=1;
           a[1][0]=b[1][0]=-1;a[1][1]=b[1][1]=0;
           POW(n-1);
           printf("%I64d\n",a[0][0]<0?a[0][0]+m:a[0][0]%m);
       }
   }
   return 0;
}

这篇关于HDUnbsp;2855nbsp;Fibonaccinbsp;Check-up(数…的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/244391

相关文章

SOMEIP_ETS_095: SD_Check_subscribe_eventgroup_ttl_expired

测试目的: 验证DUT(Device Under Test)能够检测到测试器(Tester)的订阅已过期(ttl = 3秒),并且在TTL过期后不响应测试器触发的事件。 描述 本测试用例旨在确保DUT能够识别测试器的订阅已过期,并在订阅过期后不响应测试器通过TriggerEventUint8方法触发的事件。 测试拓扑: 具体步骤: TESTER:发送订阅事件组消息,用于事件组0x0

Unexpected token d in JSON at position 5, check bodyParser config错误解决

错误原因:json格式不对 { desc="设备1", iotProjectId=11 } 解决:通过json在线校验格式校验json格式,找出错误原因,修改 在线JSON校验格式化工具(Be JSON) 修改: {"desc": "设备","iotProjectId": 11}

CtreeCtl check

转载http://www.cnblogs.com/lujin49/p/4573616.html 对进行了修改 void CTestTimerDlg::SetParentCheck(HTREEITEM hTree,BOOL bCheck) {     HTREEITEM hParent = m_TreeCtrl.GetParentItem(hTree);     if (hParent)

移动应用唤起微信无响应,提示 sendReq failed for wechat app signature check failed

问题描述 在接入微信SDK的时候  String appId = Constants.APP_ID; // 填移动应用(App)的 AppId,非小程序的 AppIDIWXAPI api = WXAPIFactory.createWXAPI(context, appId);WXLaunchMiniProgram.Req req = new WXLaunchMiniProgram.Req();

掌握CHECK约束:确保数据准确性的关键技巧

掌握CHECK约束:确保数据准确性的关键技巧 在数据库设计和管理中,数据的准确性和完整性至关重要。CHECK约束是SQL中一种强大的工具,用于限制列中的数据值,确保它们满足特定的条件。本文将详细介绍如何使用CHECK约束,并通过实例代码展示其应用。 CHECK约束简介 CHECK约束用于限制列中的数据值,确保它们满足定义的条件。例如,你可以使用CHECK约束来限制年龄字段的值必须在0到120

ubuntu qt15.5 :QT License check failed! Giving up…

问题 分析 查找 QT License check failed! Giving up…解决方案 修改 1 确认Qt安装位置 2 修改 3 出现源码,但不能运行 4 确认无解,需要license

Mysql(mariaDB) SQL错误(1064):You have an error in your SQLsybtax; check the manual that corresponds to

向MariaDB insert 记录报错1064 INSERT INTO user_mail('userid','username') VALUES('ADMIN','ADMIN'); 解决方案: 修改栏位名称的引号(’’) INSERT INTO user_mail(`userid`,`username`) VALUES('ADMIN','ADMIN');

hadoop执行分词时报错:System times on machines may be out of sync. Check system time and time zones.

解决办法: 1、安装ntpdate工具 yum -y install ntp ntpdate 2、 设置系统时间与网络时间同步 ntpdate cn.pool.ntp.org

数据集笔记: FourSquare - NYC and Tokyo Check-ins

FourSquare - NYC and Tokyo Check-ins (kaggle.com)  这个数据集包含了从2012年4月12日到2013年2月16日,约10个月时间内在纽约市和东京收集的签到数据。数据集中包含纽约市的227,428次签到和东京的573,703次签到。每个文件包括以下8个字段: 用户ID(匿名处理)场所ID(Foursquare提供)场所分类ID(Foursquare

Check Android SDK has encountered a problem

打开android项目中布局文件xml文件时报错: 原因可能是前面的xml文件有错误,检查并保存就好了。--这是我自己做的时候烦的错 网上的一些解决办法: 发android项目过程中,设计完layout,去acitivity中findViewById,R下没有VIEW的id,重新打开layout xml文件,就报错误: "Check Android SDK" has encoun