hdu2157 how many ways 矩阵
来源:互联网 发布:linux vncviewer使用 编辑:程序博客网 时间:2024/06/07 01:45
邻接矩阵自乘k次中对应的即为方案数
因为乘法原则,所以每次乘都会统计出来
这想法不错
#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<cstdlib>#include<algorithm>#define fo(i,a,b) for(int i=a;i<=b;i++)#define down(i,a,b) for(int i=a;i>=b;i--)using namespace std;#define N 35#define inf 1000int n,m;struct matrix{int a[N][N];void clear(){memset(a,0,sizeof(a));}}I;matrix operator*(const matrix a,const matrix b){matrix anss;fo(i,0,m-1)fo(j,0,m-1){anss.a[i][j]=0;fo(k,0,m-1){anss.a[i][j]+=a.a[i][k]*b.a[k][j];anss.a[i][j]%=inf;}}return anss;}void getI(){I.clear();fo(i,0,m-1)fo(j,0,m-1)if(i==j)I.a[i][j]=1;else I.a[i][j]=0;}matrix KSM(matrix a,int k){matrix ret=I;while(k){if(k&1)ret=a*ret;a=a*a;k>>=1;}return ret;}int main(){matrix A,ans;while(scanf("%d%d",&m,&n)!=EOF&&(n||m)){getI();A.clear();fo(i,1,n){int x,y;scanf("%d%d",&x,&y);A.a[x][y]=1;}int t;scanf("%d",&t);while(t--){int x,y,k;scanf("%d%d%d",&x,&y,&k);ans=KSM(A,k);printf("%d\n",ans.a[x][y]);}}return 0;}
0 0
- hdu2157 how many ways 矩阵
- hdu2157 How many ways?? (矩阵快速幂)
- hdu2157 How many ways?? 矩阵快速幂
- hdu2157 How many ways?? (矩阵快速幂)
- [HDU2157]How many ways??(矩阵乘法)
- hdu2157 How many ways??(矩阵快速幂
- #HDU2157#How many ways?(矩阵基础)
- hdu2157 How many ways??
- hdu2157 How many ways?
- (矩阵快速幂)hdu2157 How many ways??
- 【矩阵快速幂】经典题 hdu2157 how many ways、woj642 Lost In WHU
- How many ways?? 矩阵乘法
- HDU-2157 How many ways?? 矩阵快速幂
- hdu 2157 How many ways?? (矩阵快速幂)
- 【hdu】【P2157】【How many ways??】【题解】【矩阵乘法】
- 矩阵经典题目八:hdu 2175 How many ways??
- 矩阵十题【九】 HDU 2157 How many ways??
- HDU2517——How many ways??(矩阵快速幂)
- 理解Swift中map 和 flatMap对集合的作用
- 三角形面积
- (八) CXF 整合Spring--调用WS服务
- Email--Send
- C++第2次实验(函数题)
- hdu2157 how many ways 矩阵
- 做个“脸皮厚”的人
- JDBC常用类和接口及增删查修
- UIKit之UITableView的详细使用
- onItemClick和onItemLongClick同时触发解决方案
- ios本地添加提醒事件
- MFC自定义资源
- CSS笔记
- 网站性能优化之黄金守则