题意:(中问题,题意很简单

  思路:a走k步到b,其实就是A^k,ans.mat[a][b]就是答案。

  其实就是离散的邻接矩阵那个P(不想证明,逃

#include<cstdio>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<vector>
#include<stack>
#include<cstring>
#include<queue>
#include<set>
#include<string>
#include<map>
#include <time.h>
#define PI acos(-1)
using namespace std;
typedef long long ll;
typedef double db;
const int maxn = ;
const int N = ;
const ll maxm = 1e7;
const int INF = 0x3f3f3f;
const int mod=;
const ll inf = 1e15 + ;
const db eps = 1e-;
int n, m; struct Matrix{
int mat[maxn][maxn];
Matrix operator*(const Matrix& m)const{
Matrix tmp;
for (int i = ; i < n; i++) {
for (int j = ; j < n; j++) {
tmp.mat[i][j]=;
for (int k = ; k < n; k++) {
tmp.mat[i][j] += mat[i][k]*m.mat[k][j]%mod;
tmp.mat[i][j]+=mod;
tmp.mat[i][j] %= mod;
}
}
}
return tmp;
}
}; Matrix Pow(Matrix m, int k) {
Matrix ans;
memset(ans.mat , , sizeof(ans.mat));
for (int i=; i<n; i++) {
ans.mat[i][i]=;
}
while(k){
if(k&)
ans = ans*m;
k >>= ;
m = m*m;
}
return ans;
} void solve() {
Matrix tmp;
while(scanf("%d%d", &n, &m)!=EOF) {
if (!n&&!m) break;
memset(tmp.mat, , sizeof(tmp.mat));
for (int i=; i<m; i++) {
int u, v; scanf("%d%d", &u, &v);
tmp.mat[u][v]=;
}
int t; scanf("%d", &t);
while(t--) {
Matrix hh;
int a, b, k; scanf("%d%d%d", &a, &b, &k);
hh=Pow(tmp, k);
printf("%d\n", hh.mat[a][b]);
}
} }
int main() {
int t = ;
//freopen("in.txt", "r", stdin);
// scanf("%d", &t);
while(t--)
solve();
return ;
}

经典矩阵快速幂之二-----hdu2157(走k步到的更多相关文章

  1. POJ 3233 Matrix Power Series 【经典矩阵快速幂+二分】

    任意门:http://poj.org/problem?id=3233 Matrix Power Series Time Limit: 3000MS   Memory Limit: 131072K To ...

  2. 经典矩阵快速幂之一-----poj3233(矩阵套矩阵

    题意:给你一个矩阵A,求S=A+A^2+A^3+...+A^k. 其实这个当时我看着毫无头绪,看了他们给的矩阵发现好!精!妙! 我们这样看 是不是有点思路! 没错!就是右上角,我们以此类推可以得到A+ ...

  3. 51nod 1113 矩阵快速幂( 矩阵快速幂经典模板 )

    1113 矩阵快速幂 链接:传送门 思路:经典矩阵快速幂,模板题,经典矩阵快速幂模板. /******************************************************* ...

  4. hdu 5607 BestCoder Round #68 (矩阵快速幂)

    graph  Accepts: 9 Submissions: 61  Time Limit: 8000/4000 MS (Java/Others)  Memory Limit: 65536/65536 ...

  5. CF821E(多次矩阵快速幂)

    题意: 冈伦从二维平面上(0,0)走到(k,0),(k<=1e18),每次有三个行动方向:右上一格.右方一格.右下一格,问一共有多少种走的方案 限制:每段x都有一个天花板,一共有n段天花板(n& ...

  6. poj 2778 AC自动机+矩阵快速幂

    题目链接:https://vjudge.net/problem/POJ-2778 题意:输入n和m表示n个病毒,和一个长为m的字符串,里面只可以有'A','C','G','T' 这四个字符,现在问这个 ...

  7. codeforces E. Okabe and El Psy Kongroo(dp+矩阵快速幂)

    题目链接:http://codeforces.com/contest/821/problem/E 题意:我们现在位于(0,0)处,目标是走到(K,0)处.每一次我们都可以从(x,y)走到(x+1,y- ...

  8. [Sdoi2017]序列计数 [矩阵快速幂]

    [Sdoi2017]序列计数 题意:长为\(n \le 10^9\)由不超过\(m \le 2 \cdot 10^7\)的正整数构成的和为\(t\le 100\)的倍数且至少有一个质数的序列个数 总- ...

  9. Codeforces1106F 【BSGS】【矩阵快速幂】【exgcd】

    首先矩阵快速幂可以算出来第k项的指数,然后可以利用原根的性质,用bsgs和exgcd把答案解出来 #include<bits/stdc++.h> using namespace std; ...

随机推荐

  1. jquery不能实时获取CKEDITOR值的解决方法

    不用传统的获取值的方法: var ckeditor = document.getElementById("ckeditor").value; 换成: var ckeditor =  ...

  2. linux安装zookeeper及使用

    一.安装条件 想要安装zookeeper,必须先在linux中安装好jdk.安装步骤见: https://www.cnblogs.com/expiator/p/9987351.html 二.下载并解压 ...

  3. 2018蓝桥杯 全球变暖(dfs)

    你有一张某海域NxN像素的照片,"."表示海洋."#"表示陆地,如下所示:........##.....##........##...####....###.. ...

  4. docker容器和镜像

    这篇文章希望能够帮助读者深入理解Docker的命令,还有容器(container)和镜像(image)之间的区别,并深入探讨容器和运行中的容器之间的区别. 当我对Docker技术还是一知半解的时候,我 ...

  5. HDU-1459.非常可乐(BFS )

    这道题TLE了很多次,原来一直以为将数字化为最简可以让运算更快,但是去了简化之后才发现,真正耗时的就是化简....还和队友学到了用状态少直接数组模拟刚就能过... 本题大意:给出可乐的体积v1,给出两 ...

  6. The following packages have unmet dependencies错误

    当出现类似这类错误: The following packages have unmet dependencies: python-dev : Depends: python (= 2.7.5-5ub ...

  7. PAT L2-011 玩转二叉树(二叉树层序遍历)

    给定一棵二叉树的中序遍历和前序遍历,请你先将树做个镜面反转,再输出反转后的层序遍历的序列.所谓镜面反转,是指将所有非叶结点的左右孩子对换.这里假设键值都是互不相等的正整数. 输入格式: 输入第一行给出 ...

  8. Python: 爬取百度贴吧图片

    练习之代码片段,以做备忘: # encoding=utf8 from __future__ import unicode_literals import urllib, urllib2 import ...

  9. jQuery 与js判断是否单选复选选中

    js判断复选:这段代码昨天网上查看的资料没保存出处,抱歉 var obj=document.getElementsByName("diseaseSet"); //选择所有name= ...

  10. Exceptions

    [定义] error: external, like out of memory exception: internal, like file not found 父类都是throwable 逻辑有错 ...