离散数学:矩阵
来源:互联网 发布:linux vsftpd 启动 编辑:程序博客网 时间:2024/06/07 03:50
根据离散数学:一个由0,1构成的矩阵A,任意常数k,A^k次表示矩阵中任意点经过k条路径到任意点的的方法数,点可以重复走。
这是一个很重要的图论知识,POJ2888就有运用到。
#include<iostream>#include<cstdio>#include<cstring>using namespace std;int u,v;const int mod=9973;struct Matrix{ int Mat[15][15];};Matrix operator * (Matrix a,Matrix b){ Matrix c; for(int i=0;i<6;i++) { for(int j=0;j<6;j++) { c.Mat[i][j]=0; for(int k=0;k<6;k++) { c.Mat[i][j]=(c.Mat[i][j]+a.Mat[i][k]*b.Mat[k][j])%mod; } } } return c;}Matrix operator ^ (Matrix a,int b){ Matrix temp; Matrix base=a; memset(temp.Mat,0,sizeof(temp.Mat)); for(int i=0;i<6;i++) temp.Mat[i][i]=1; while(b) { if(b&1) temp=temp*base; base=base*base; b>>=1; } return temp;}//int solve(Matrix a,int b)//{// int ret=0;// Matrix temp=a^b;// for(int i=0;i<m;i++)// ret=(ret+temp.Mat[i][i])%mod;// return ret;//}int main(){ Matrix p; memset(p.Mat,0,sizeof(p.Mat)); while(cin>>u>>v) { if(u+v==0) break; p.Mat[u][v]=1; } for(int i=0;i<6;i++) { for(int j=0;j<6;j++) { cout<<p.Mat[i][j]<<" "; } cout<<endl; } Matrix temp=p^3; cout<<temp.Mat[5][4]<<endl; return 0;}
0 0
- 离散数学:矩阵
- 离散数学4___关系矩阵
- 离散数学14(判断矩阵是否对称)
- 离散数学
- 离散数学
- 离散数学
- 离散数学
- 离散数学
- 离散数学
- 离散数学
- hdoj 2254 奥运 【矩阵快速幂 + STLmap】 【离散数学的应用】
- 【离散数学】Warshall算法实现 传递闭包对应矩阵
- Mistwald(离散数学关系矩阵+矩阵快速幂+数据读取格式问题)
- 离散数学及其应用——ch3 基础:算法、整数和矩阵
- How many ways??(离散数学知识(集合论二元关系Warshall算法原理)+矩阵快速幂)
- 离散数学复习
- 离散数学(1)
- 离散数学(关系)
- eclipse检测不到手机或模拟器
- linux mprotect 修改用户态内存的方法
- spark启动中遇到的问题
- 如何打造跨境电商平台
- HDU5795 A Simple Nim(SG函数)
- 离散数学:矩阵
- MySQL:基于双主复制的keepalived的HA方案
- C# 虚方法(virtual)
- HDU Problem 3665 Seaside【最短路】
- HBase Snapshot 相关操作原理
- linux文件权限笔记
- [iOS文档翻译]AVFoundation Programming Guide - About AVFoundation - AVFoundation概述
- 网易新闻js交互
- python 类,类实例及其它对象的内建函数