http://acm.hdu.edu.cn/showproblem.php?pid=2157

题目大意:不多赘述。关键是知道题目如何解决。其实其求的就是可达矩阵 (不懂的参看离散数学图论)

在实际系统建模工程中,有向图D={S,R}中,对于Si,Sj 属于S,如果从Si到Sj有任何一条通路存在,则可称Si可达Sj。
利用布尔矩阵的运算性质给出了计算有向图可达矩阵的方法,该方法计算简便.

接下来的解题就是求其K次可达矩阵中[A][B]的值即可。

AC代码

#include <iostream>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <stdlib.h>
using namespace std;
typedef long long ll;
const int MAXN = 1e2+7;
const int mod = 1000;
struct martrix {int a[MAXN][MAXN];
}m1,m2;
ll n, m;
ll k;
martrix mul(martrix m1, martrix m2) {martrix m3;memset(m3.a, 0, sizeof m3.a);for(int i = 0;i < n;i++) {for(int j = 0; j < n; j++) {for(int k = 0;k < n; k++) {m3.a[i][j] += m1.a[i][k]*m2.a[k][j];m3.a[i][j] %= mod;}}}return m3;
}
martrix mpow(martrix m1) {martrix res;memset(res.a, 0, sizeof res.a);for(int i = 0; i < n; i++) res.a[i][i] = 1;while(k!=0) {if(k%2!=0) {res = mul(res,m1);k--;}else {m1 = mul(m1,m1);k>>=1;}}return res;
}
int main() {int q;int A,B;int s,e;while(cin >> n >> m && (n+m)) {memset(m1.a,0,sizeof m1.a);while(m--) {cin >> s >> e;m1.a[s][e]= 1;}cin >> q;while(q--) {memset(m2.a,0,sizeof m2.a);cin >> A >> B >> k;m2 = mpow(m1);cout << m2.a[A][B] << endl;}}
}

HDU2157 How many ways??(可达矩阵+矩阵快速幂)相关推荐

  1. HDU 4565So Easy!2012长沙邀请赛A题(共轭构造+矩阵的快速幂)

    So Easy! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total S ...

  2. 求解斐波那契第n项的几种解法(含矩阵乘法+快速幂) Python实现

    斐波那契数列 首先我们来定义一下斐波那契数列: f(n)={0n = 01n = 1f(n−1)+f(n−2)n > 1f(n)= \begin{cases} 0 & \text {n ...

  3. 【BZOJ 2323】 2323: [ZJOI2011]细胞 (DP+矩阵乘法+快速幂*)

    2323: [ZJOI2011]细胞 Description 2222年,人类在银河系外的某颗星球上发现了生命,并且携带了一个细胞回到了地球.经过反复研究,人类已经完全掌握了这类细胞的发展规律: 这种 ...

  4. [矩阵乘法/快速幂专题]Arc of Dream,Recursive sequence,233 Matrix,Training little cats

    矩阵快速幂习题 复习矩阵乘法及快速幂模板 乘法模板 快速幂模板 T1:Arc of Dream 题目 题解 code T2:Recursive sequence 题目 题解 code T3:233 M ...

  5. bzoj 4417: [Shoi2013]超级跳马(矩阵合并+快速幂)

    4417: [Shoi2013]超级跳马 Time Limit: 10 Sec  Memory Limit: 256 MB Submit: 410  Solved: 252 [Submit][Stat ...

  6. 循环矩阵的快速幂(bzoj 2510: 弱题)

    2510: 弱题 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 408  Solved: 218 [Submit][Status][Discuss] ...

  7. [BZOJ3240][Noi2013]矩阵游戏 快速幂

    当我知道这题矩阵可以用费马小定理搞快速幂的时候 我眼泪都要落下来了QAQ 首先求一发通项F[1][1]->F[2][1]的通项 然后写成A+B的形式 若a != 1 A = (a^(m-1))* ...

  8. ZCMU-1618-骨牌覆盖(矩阵乘法+快速幂)

    1618: 骨牌覆盖1 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 264  Solved: 124 [Submit][Status][Web Bo ...

  9. Xn数列(矩阵乘法+快速幂+慢速乘法)

    Xn数列 题目描述: 给你6个数,m, a, c, x0, n, g Xn+1 = ( aXn + c ) mod m,求Xn m, a, c, x0, n, g<=10^18 输入描述: 一行 ...

  10. 矩阵儿快速幂 - POJ 3233 矩阵力量系列

    不要管上面的标题的bug 那是幂的意思,不是力量... POJ 3233 Matrix Power Series 描述 Given a n × n matrix A and a positive in ...

最新文章

  1. [leetcode]Divide Two Integers
  2. 1.初学MVC3学习笔记1
  3. C++基础部分_C++文件操作_二进制文件的写操作---C++语言工作笔记078
  4. php 字符串分割出数字,php 字符串分割函数的总结
  5. curl如何发送json数据?如何发送form数据?python的restfull又该如何获取这些数据?...
  6. vwap 公式_「」当天平均价 股票 公式-通达信当日均价计算公式-TOP金融网
  7. sdk寄存器地址linux,S32K SDK使用详解之PinSettings组件配置与使用详解(S32K1xx PORT 和GPIO模块)...
  8. java操作excel表格(最简单的教程!一学即会)
  9. 浪潮服务器bios更改硬盘模式,bios更改硬盘模式详细教程
  10. 【Nginx 源码学习】平滑重启,源码追踪
  11. PNG图片怎么转成ICO?分享两种思路
  12. 进入旅游营销时代,携程有什么“大招”?
  13. 【Android Gradle 插件】 Splits 配置 ① ( BaseExtension#splits 配置 | Splits 配置简介 )
  14. Android入门第十四篇之画图
  15. Cannot connect to the Maven process.Try again later.If the problem persists...
  16. Mesos | 1.3.2 webui static 界面代码分析
  17. php语言中Excel表格导入数据库的方法详解
  18. linux系统灾难恢复,轻松解决 Linux操作系统故障恢复技巧
  19. 鼠标每隔几秒失去焦点,鼠标每隔几秒转圈,鼠标每隔几秒刷新
  20. 明明已经引入了jquery,还是不断地报错,终于找到原因了

热门文章

  1. 苹果电脑上好用的五个文档文本编辑工具
  2. oppo A3怎么刷机oppo A3的刷机教程 oppo A3完美解除账号锁
  3. java md5,md2,md4 加密算法
  4. mac上安装和启动kafka
  5. ffmpeg 处理字幕
  6. 使用 Python 开发 QGIS 插件
  7. Unity3D之Translate使用
  8. 知了课堂学习笔记一-Django预热-虚拟环境
  9. python安装pygame的命令是什么_Python的pygame安装教程详解
  10. markdown图床使用小记