How many ways??(hdu 2157)
来源:互联网 发布:韩春雨造假知乎 编辑:程序博客网 时间:2024/05/04 05:11
#include<stdio.h>struct mart{ intmat[25][25];};mart martx;int n;mart multi(mart a,mart b){ martc; inti,j,k; for(i=1;i<=n;i++) for(j=1;j<=n;j++) { c.mat[i][j]=0; for(k=1;k<=n;k++) c.mat[i][j]=(c.mat[i][j]+a.mat[i][k]*b.mat[k][j])00; } return c;}mart power(int k){ martp,q; inti,j; for(i=1;i<=n;i++) for(j=1;j<=n;j++) { p.mat[i][j]=martx.mat[i][j]; if(i==j) q.mat[i][j]=1; else q.mat[i][j]=0; } if(k==0) return q; while(k!=1) { if(k&1) { k--; q=multi(p,q); } else { k=k>>1; p=multi(p,p); } } p=multi(p,q); returnp;}int main(){ inti,j,m,q,a,b,k; marttmp; while(scanf("%d%d",&n,&m)!=EOF) { if(n==0&&m==0) break; for(i=0;i<=n;i++) for(j=0;j<=n;j++) martx.mat[i][j]=0; for(i=1;i<=m;i++) { scanf("%d%d",&a,&b); a=a+1,b=b+1; martx.mat[a][b]=1; } scanf("%d",&q); while(q--) { scanf("%d%d%d",&a,&b,&k); a=a+1,b=b+1; tmp=power(k); printf("%d\n",tmp.mat[a][b]00); } } return0;}
0 0
- How many ways??(hdu 2157)
- HDU 2157 How many ways?? (DP)
- hdu 2157 How many ways??
- How many ways?? hdu 2157
- HDU 2157 How many ways??
- hdu 2157:How many ways??
- hdu 2157 How many ways??
- HDU 2157 How many ways??
- HDU 2157 How many ways??
- HDU-2157 How many ways?
- hdu 2157 How many ways??
- hdu 2157 How many ways??
- hdu 2157 How many ways??
- HDU 2157 How many ways
- hdu how many ways
- HDU How many ways
- HDU 2157 How many ways??(经典矩阵快速幂)
- HDU 2157 How many ways??(矩阵快速幂)
- hdu 1087 Super Jumping! Jumping! Jumping!
- LinearLayout中组件右对齐
- friend(hdu 1719)
- 无题(hdu 1871)
- c#中鼠标滚轮对PictureBox的缩放
- How many ways??(hdu 2157)
- Friend(1719)
- 大菲波数(1715)
- Ride to School(POJ 1922)
- Red and Black(hdu 1312)
- Fibonacci(poj3070)
- 黑马程序员_文件IO流部分疑点和JDK1.7版本后新try-catch处理学习笔记
- 深入探讨MFC消息循环和消息泵
- FZU 1913 Easy Comparison