hdu 2157 How many ways_ 矩阵快速幂
来源:互联网 发布:c语言小爱心代码 编辑:程序博客网 时间:2024/06/18 09:28
题意:略
直接矩阵乘法就行了
#include <iostream>#include<cstdio>#include<cstring>using namespace std;#define LL __int64#define N 30int n,m;struct node{ int mat[N][N]; node operator *(const node &x){ node tmp; memset(tmp.mat,0,sizeof(tmp.mat)); for(int i=0;i<N;i++) for(int k=0;k<N;k++) if(mat[i][k]) for(int j=0;j<N;j++){ tmp.mat[i][j]+=(mat[i][k]*x.mat[k][j])%1000; tmp.mat[i][j]%=1000; } return tmp; }}cat,b;void _pow(int v){memset(b.mat,0,sizeof(b.mat));for(int i=0;i<n;i++)b.mat[i][i]=1; while(v){ if(v&1) b=b*cat; cat=cat*cat; v>>=1; }}int main(int argc, char** argv) {int s,e,t,i,x,y,k;node tmp;while(scanf("%d%d",&n,&m)!=EOF&&n||m){memset(cat.mat,0,sizeof(cat.mat));for(i=0;i<m;i++){scanf("%d%d",&x,&y);cat.mat[x][y]=1;}tmp=cat;scanf("%d",&t);while(t--){cat=tmp;scanf("%d%d%d",&s,&e,&k);_pow(k);printf("%d\n",b.mat[s][e]);}}return 0;}
- 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 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 2157How many ways??(矩阵快速幂)
- hdu-2157-How many ways??【矩阵快速幂】
- HDU 2157 How many ways??【矩阵快速幂】
- [转]Twemproxy——针对MemCached与Redis的代理
- Nodejs在win7环境中安装及测试
- WE大会马化腾要告诉我们什么?
- 生成随机数 打印系统时间 方法
- 插入排序算法之直接排序和希尔排序,java简单实现
- hdu 2157 How many ways_ 矩阵快速幂
- 直接从 Google Play 下载 Android 应用最简单的方法
- VC++6.0常见编译错误中英文对照表
- Ubuntu中的tomcat能启动却不能用localhost:8080访问
- FileUpload控件上传文件时服务器不能与本地连接
- 【转】oracle lag与lead分析函数简介
- tar压缩解压命令
- Java中类不能多重继承,接口可以多重继承
- 使用C语言实现链栈以及initialize,push,pop,isEmpty,getlength,destory等操作