博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
矩阵乘法-洛谷P2233 [HNOI2002] 公交车路线
阅读量:4487 次
发布时间:2019-06-08

本文共 1009 字,大约阅读时间需要 3 分钟。

矩阵这个很显然啊;
然后直接快速幂就好了;
至于为什么,这个就是矩阵的基本性质;
可以看我相关的博客;
然后到了E点就不懂,直接在乘法的时候处理一下就好了

#include
#include
#include
#include
#include
#include
#define Ll long longusing namespace std;int a[9][9]{ //A B C D E F G H{ 0,0,0,0,0,0,0,0,0},{ 0,0,1,0,0,0,0,0,1},//A{ 0,1,0,1,0,0,0,0,0},//B{ 0,0,1,0,1,0,0,0,0},//C{ 0,0,0,1,0,1,0,0,0},//D{ 0,0,0,0,1,0,1,0,0},//E{ 0,0,0,0,0,1,0,1,0},//F{ 0,0,0,0,0,0,1,0,1},//G{ 0,1,0,0,0,0,0,1,0},//H};struct jv{ int m[9][9]; jv(){ memset(m,0,sizeof m);}}ans,c;int n,mo=1e3;jv cheng(jv x,jv y){ jv z; for(int i=1;i<=8;i++) for(int j=1;j<=8;j++) for(int k=1;k<=8;k++)if(k!=5) z.m[i][j]=(z.m[i][j]+x.m[i][k]*y.m[k][j])%mo; return z;}int main(){ scanf("%d",&n); n--; for(int i=1;i<=8;i++) for(int j=1;j<=8;j++) c.m[i][j]=a[i][j]; ans=c; while(n){ if(n&1)ans=cheng(ans,c); n>>=1; c=cheng(c,c); } printf("%d",ans.m[1][5]);}

转载于:https://www.cnblogs.com/largecube233/p/6797852.html

你可能感兴趣的文章
Windows添加.NET Framework 3.0 NetFx3 失败 - 状态为:0x800f0950
查看>>
隐藏显示终端的光标(shell echo,linux c printf)
查看>>
SQL Server 存储过程
查看>>
JSP 标准标签库(JSTL)(JSP Standard Tag Library)
查看>>
导入项目遇到的问题: Some projects cannot be imported because they already exist in the workspace....
查看>>
华为:字符集合
查看>>
用Okhttp框架登录之后的Cookie设置到webView中(转)
查看>>
Java_Activiti5_菜鸟也来学Activiti5工作流_之入门简单例子(一)
查看>>
设计模式(一)工厂模式Factory(创建型)
查看>>
linux中安装软件的集中方法
查看>>
Express中间件,看这篇文章就够了(#^.^#)
查看>>
《构建之法》(五)
查看>>
创建django项目
查看>>
Linux Bash基本功能
查看>>
一则小脚本(工作中用)
查看>>
软件工程结对作业
查看>>
Keil 4.0 生成bin文件
查看>>
sql语句的进化--hibernate篇
查看>>
python爬虫之cookie
查看>>
2017年5月29号课堂笔记
查看>>