思路:矩阵快速幂, 二分加速

#include<cstdio>
#include<cstring>
#define ll long long
#define mod 10000struct jz
{ll num[2][2];jz(){ memset(num, 0, sizeof(num)); }jz operator*(const jz&p)const{jz ans;for (int k = 0; k < 2;++k)for (int i = 0; i < 2;++i)for (int j = 0; j < 2; ++j)ans.num[i][j] = (ans.num[i][j] + num[i][k] * p.num[k][j] % mod) % mod;return ans;}
};
jz POW(jz x, ll n)
{jz ans;for (int i = 0; i < 2; ++i)ans.num[i][i] = 1;for (; n; n>>=1, x=x*x)if (n & 1){ ans = ans*x; }return ans;
}
int main()
{ll n;while (scanf("%lld", &n) && (n != -1)){if (n <= 1)printf("%lld\n", n);else{jz pp;pp.num[0][0] = 1; pp.num[0][1] = 1;pp.num[1][0] = 1;pp = POW(pp, n - 2);printf("%lld\n", (pp.num[0][0]+pp.num[0][1])%mod);}}
}

转载于:https://www.cnblogs.com/ALINGMAOMAO/p/9506126.html

pek (北大oj)3070相关推荐

  1. 北大OJ百练——4073:最长公共字符串后缀(C语言)

    刚刚看到一道北大的OJ题,很简单的一道题.原题如下(偷个懒,直接截图): 看完这道题,我想大家都和我一样觉得这道题很简单,事实也是如此,毕竟通过率很高. 我先来说一下我的思路吧.我是想先把这些所有的字 ...

  2. 北大OJ百练——3179:最长单词(C语言)

    废话不多说,先来上题目: OJ的这题关键在于如何计算我所选择的开始位置和结束位置.我用的方法是有4个参数来存储起来,start, buffStart, lenth, maxLenth. start: ...

  3. 北大OJ百练——4074:积水量(C语言)

    前言: 最近感觉算法是一个很重要的东西,于是又把以前的OJ捡起来做做了,看到一题叫做积水量的题目,通过率是100%,虽然说是没有什么挑战,不过很久没写OJ了,让自己进入状态也不错的. 描述: 凹凸不平 ...

  4. 北大OJ百练——2721:忽略大小写比较字符串大小

    这题很简单,就是一个大小写转换的算法,可能有一个函数专门做这个事,大家可以查查,我想应该是有的. 那么我的代码思路就是一个个去比较,不管它是大写字母还是小写字母,都一并把它们都专成小写字母,再去比较. ...

  5. 北大OJ百练——4075:矩阵旋转(C语言)

    百练的这道题很简单,通过率也达到了86%,所以我也就来贴个代码了...下面是题目: 不过还是说一下我的思路: 这道题对一个新来说,可能是会和矩阵的转置相混淆,这题并不是要我们去求矩阵的转置. 这题,我 ...

  6. 北大OJ(POJ 2795)金银岛

    该题是经典的贪心问题,根据平均价值从小到大排序,依次放入背包,直到背包装满为止. 描述 某天KID利用飞行器飞到了一个金银岛上,上面有许多珍贵的金属,KID虽然更喜欢各种宝石的艺术品,可是也不拒绝这样 ...

  7. 北大OJ(POJ 2503)在线翻译

    描述 你刚从滑铁卢搬到一个大城市.这里的人说着一种难以理解的外语方言.幸运的是,你有一本字典来帮助你理解它们. 输入 输入由多达100,000个字典条目组成,后面跟着一个空行,后面跟着多达100,00 ...

  8. 北大OJ(POJ 2808)校门外的树

    描述 在[0,L]的区间内,每个整数都有一棵树,现因某些原因移走一些数 求移走这些树后还剩多少棵树 输入 输入的第一行有两个整数L(1 <= L <= 10000)和 M(1 <= ...

  9. 北大OJ(POJ 3237)鸡兔同笼

    描述 一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外).已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物 输入 第1行是测试数据的组数n,后面跟着n行输入.每组 ...

最新文章

  1. 双表查询java代码_什么是JDBC?Java数据库连接性简介
  2. onvif规范的实现:onvif开发常用调试方法 和常见的segmentation fault错误
  3. missing required icon file.图标错误解决
  4. Linux mail 命令
  5. SharedPreferences实现记住密码功能
  6. java 脚本语言交互_Java学习笔记--脚本语言支持API
  7. 要比惨吗?看看这个女人
  8. Java 中去除字符串中空格的方法
  9. C语言(CED)查找最接近的元素(分治法/二分查找):在一个非降序列中,查找与给定值最接近的元素。(递归实现)
  10. 【c++ | 课上练习】2021年9月23日
  11. Nginx Location 工作流程图及总结
  12. 集体智慧编程源代码(免费)
  13. 驱动人生6网卡版 v6.1.19.90 官方版
  14. ROS海龟跟随(坐标变换)
  15. 简述利用PE系统破解Windows密码
  16. Java身份证校验算法
  17. 补交20145226蓝墨云班课 -- 正则表达式作业
  18. Android 源代码在线查看 目录结构 不完全指南
  19. 2016年,上海的互联网企业是否值得加入?
  20. X猜想:比尔离开后的微软帝国

热门文章

  1. 冬季生存法则,不得不看!
  2. yii2项目实战-用户管理之登录与注册功能实现
  3. ATEN旗下品牌K博士强势出击个人级/小型商用市场
  4. ASP.NET列表信息以Excel形式导出
  5. Javascript变量的注意要点
  6. 谷歌推出 ARCore 1.7 版本,增加 AR 滤镜
  7. 望城区构建摩托车电动车防盗系统 打造物联网平安智慧城市
  8. Provisioning Services 7.8 入门系列教程之十四 UEFI支持和BOOTPTAB 编辑器
  9. Unity Shader 阴影
  10. vs widows服务的发布