2016湖南湘潭邀请赛 - 2019牛客国庆集训派对day6

A - 2016

题意:求一个2阶矩阵的n次幂,对7取模的结果
思路:可以用上面介绍的10进制倍增的方法。也可以用 n 对2016取模,还可以记忆化找循环节。

代码1:记忆化找循环节

#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
const int N=5e5;string n;
int a,b,c,d;
int m[N+10][2][2];int main()
{cin>>n>>a>>b>>c>>d;m[1][0][0]=a,m[1][0][1]=b;m[1][1][0]=c,m[1][1][1]=d;int mod=0;for(int i=2;i<=N;++i){mod++;m[i][0][0]=(m[i-1][0][0]*a+m[i-1][0][1]*c)%7;m[i][0][1]=(m[i-1][0][0]*b+m[i-1][0][1]*d)%7;m[i][1][0]=(m[i-1][1][0]*a+m[i-1][1][1]*c)%7;m[i][1][1]=(m[i-1][1][0]*b+m[i-1][1][1]*d)%7;if(m[i][0][0]==a&&m[i][0][1]==b&&m[i][1][0]==c&&m[i][1][1]==d)break;} m[0][0][0]=m[mod][0][0];m[0][0][1]=m[mod][0][1];m[0][1][0]=m[mod][1][0];m[0][1][1]=m[mod][1][1];int n1=0;int len=n.size();for(int i=0;i<=len-1;++i)n1=(n1*10+n[i]-'0')%mod;printf("%d %d\n%d %d\n",m[n1%mod][0][0],m[n1%mod][0][1],m[n1%mod][1][0],m[n1%mod][1][1]);return 0;
}

代码2:10进制倍增

#include <iostream>
#include <algorithm>
#include <cstdio>
#define ll long long
using namespace std;
const int mod=7;struct Matrix
{static const int N=2;ll a[N+1][N+1];Matrix(){clear();}void init(){for(int i=1;i<=N;++i)a[i][i]=1;}void clear(){for(int i=1;i<=N;++i)for(int j=1;j<=N;++j)a[i][j]=0;}Matrix operator*(const Matrix &b) const{Matrix ret;for(int i=1;i<=N;++i)for(int j=1;j<=N;++j)for(int k=1;k<=N;++k)ret.a[i][j]=(ret.a[i][j]+a[i][k]*b.a[k][j])%mod;return ret;}
};string n;
int a,b,c,d;int main()
{cin>>n>>a>>b>>c>>d; int len=n.size();Matrix A[4];A[0].a[1][1]=a,A[0].a[1][2]=b;A[0].a[2][1]=c,A[0].a[2][2]=d;Matrix ret;ret.init(); for(int i=len-1;i>=0;--i){A[1].clear(),A[2].clear(),A[3].clear();for(int j=1;j<=3;++j)A[j]=A[j-1]*A[j-1];n[i]-='0';for(int j=0;j<4;++j){if((n[i]>>j)&1)ret=ret*A[j];}A[0]=A[1]*A[3];  }cout<<ret.a[1][1]<<" "<<ret.a[1][2]<<"\n";cout<<ret.a[2][1]<<" "<<ret.a[2][2]<<"\n";   return 0;
}

2016湖南湘潭邀请赛 - 2019牛客国庆集训派对day6相关推荐

  1. 2019牛客国庆集训派对day2 K 2018(容斥)

    链接:https://ac.nowcoder.com/acm/contest/1107/K 来源:2019牛客国庆集训派对day2 题目描述   Given a, b, c, d, find out ...

  2. 牛客国庆集训派对Day6

    牛客国庆集训派对Day6 以下是我个人题解,出题人题解附带在最后 A.Birthday 费用流裸题,只要注意到1+3+5+...+2k−1=k21+3+5+...+2k-1 = k^21+3+5+.. ...

  3. 2019牛客国庆集训派对day7 A 2016(数学)

    题干: 链接:https://ac.nowcoder.com/acm/contest/1112/A 来源:牛客网 给出正整数 n 和 m,统计满足以下条件的正整数对 (a, b) 的数量: 1 < ...

  4. 2019牛客国庆集训派对day7 A 2016

    原题 题意: 给出正整数 n 和 m,统计满足以下条件的正整数对 (a, b) 的数量: 1≤a≤n,1≤b≤m; a×b是 2016 的倍数. 思路: a*b%mod–>(a%mod * b% ...

  5. 2019牛客国庆集训派对day7题解

    还没补完,慢慢补,能写多少是多少··· 文章目录 2016 题目描述 思路 代码 有向无环图 题目描述 思路 代码 Parenthesis 题目描述 思路 代码 三角形和矩形 题目描述 思路 代码 2 ...

  6. 2019牛客国庆集训派对day2 K 2018

    我这里在原题目上面加了扩充 修改:将2018改为x(x不是很大 ,其他题面内容不变 方法:首先将x分解质因子,变为 x=p1e1∗p2e2∗...∗pnenx=p_{1}^{e1}*p_{2}^{e2 ...

  7. 牛客国庆集训派对Day6 B.Board

    链接 [https://www.nowcoder.com/acm/contest/206/B] 分析 只要在n*n范围内随便找一个斜对角的一个格子去计算就知道了 具体看代码体会吧 代码 #includ ...

  8. 牛客国庆集训派对Day6 I 清明梦超能力者黄YY

    清明梦超能力者黄YY 传送门 题目: 黄YY是一个清明梦超能力者,同时也是一个记忆大师.他能够轻松控制自己在梦中的一切,在醒来之后还能清晰的记得梦中所有的细节,这让他的朋友们都十分羡慕. 又是一个晚上 ...

  9. 牛客国庆集训派对Day6 I.清明梦超能力者黄YY(树剖)

    题目:https://www.nowcoder.com/acm/contest/206/I 正难则反. 问你倒数第k次的颜色,正着来搞不定,那就转换成"倒着来的第k次". 使用树剖 ...

最新文章

  1. mongodb关联查询 和spring data mongodb
  2. 《c++ templates》学习笔记(9)——第十二章 特化与重载
  3. sanic官方文档解析之下载和Configuration
  4. 巨无霸Win8PE X64服务器维护专用,【13年4月4日】维护版win8pe【32位+64位+纯64位】(支持BIOS+EFI)...
  5. 大分区表高并发性能提升100倍?阿里云 RDS PostgreSQL 12 解读
  6. 使用Anaconda3安装pytorch、paddle环境并在pycharm里面进行环境测试
  7. 升级浏览器_升级Unity 8,优化系统组件,添加键盘手势,升级浏览器,UbuntuTouch最大的一次更新
  8. Android编程中利用AudioTrack播放PCM数据在音频的最后出现重复回声现象的解决方案
  9. python全栈开发下载_python全栈开发神器 - 『精品软件区』 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn...
  10. Ubuntu下编译SHTOOLS
  11. python程序运行键_python实现按任意键继续执行程序
  12. CCNA学习笔记 基础知识回顾(4)
  13. linux vi字体大小,设置VIM字体大小
  14. 儿童素描手绘创意设计字体 for mac
  15. 倩女幽魂7月20日服务器维护,倩女幽魂手游2021年7月22日更新公告
  16. zuc算法代码详解_密码学算法之序列密码中的ZUC算法详解
  17. ENVI添加指北针/比例尺
  18. Objective C转Swift注意事项(一)合理使用结构体,枚举,extensions
  19. 苹果原装转接头不能连html,变革之际 iPhone 7P原装lightning耳机及转接头拆解
  20. ![CDATA[]] 的基本介绍

热门文章

  1. 抽象类——加油站加油
  2. (18)【WAF绕过】WAF部署、绕过分析和原理、注入绕过WAF方法
  3. fastapi基本使用之:入参,返回值与异常处理
  4. HTML小项目之音乐盒
  5. 奇艺副总裁段有桥:互联网电视8大误区(转载)
  6. 推荐 :机器学习中的四种分类任务(附代码)
  7. Windows快捷键收集
  8. 最新款苹果 iPad 写代码真香,包邮送一个!
  9. Linux春招面试复习之:Linux必备命令集合
  10. Oracle数据库第四课——PL/SQL中的条件控制