AC通道

如果建立第一天某点到某点有几条路的矩阵,做k次矩阵乘就是第k天某点到某点有几条路。统计即可。

#include <bits/stdc++.h>
using namespace std; typedef long long ll;
const int maxn = 101, mod = 1e9 + 7;
int N, M, K, S, ans; struct Matrix {
int v[maxn][maxn], n; Matrix(int n) { memset(v, 0, sizeof v); this->n = n; } Matrix operator * (const Matrix &A) const {
Matrix ret(n);
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
for (int k = 0; k < n; k++)
ret.v[i][j] = ((ll)ret.v[i][j] + (ll)v[i][k] * A.v[k][j] % mod) % mod;
return ret;
} Matrix operator ^ (int b) const {
Matrix ret(n);
Matrix A = *this;
for (int i = 0; i < n; i++)
ret.v[i][i] = 1;
for (; b; b >>= 1) {
if (b & 1) ret = ret * A;
A = A * A;
}
return ret;
}
}; int main() {
scanf("%d %d %d %d", &N, &M, &K, &S);
Matrix A(N);
for (int i = 0; i < M; i++) {
int u, v;
scanf("%d %d", &u, &v);
A.v[--u][--v]++;
}
A = A ^ K;
S--;
for (int i = 0; i < N; i++) {
if (i != S) {
ans = ((ll)ans + A.v[S][i]) % mod;
}
}
printf("%d\n", ans);
return 0;
}

最新文章

  1. CRL快速开发框架系列教程四(删除数据)
  2. 如何 实现PHP多版本的 共存 和 切换?
  3. HTML标签小结
  4. mvc Areas注册域常见问题一
  5. SQL SERVER -&gt;&gt; Columnstore Index
  6. 1,php概述
  7. shell介绍
  8. C# winform 窗体 彻底退出窗体的方法
  9. docker容器日志收集方案汇总评价总结
  10. Unable to start web server; nested exception is org.springframework.context.ApplicationContextException: Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean.
  11. BZOJ1185 HNOI2007 最小矩形覆盖 凸包、旋转卡壳
  12. 训练题(代码未检验)(序列前k大和问题)
  13. JavaScript数字转字符串,字符串转数字
  14. SpringBoot配置属性之其他
  15. ADF 入门帮助
  16. ArcMap导入数据到ArcSDE报000597或者000224的错误
  17. QT 交叉编译工具选择
  18. 批处理bat文件dos命令实现文件的解压缩
  19. CodeForces - 955B(用char会超时。。。)
  20. 蓝桥杯练习——C++输出阶乘的最右边一位非零数

热门文章

  1. 常用的Css命名方式
  2. kernel中对文件的读写【学习笔记】【原创】
  3. Java8初体验(2):Stream语法详解
  4. 【Spring MVC】 - @ModelAttribute使用
  5. mysql 数据库电脑间迁移
  6. adb 读写模式 挂载文件系统
  7. 关于「环境变量」PATH,CLASSPATH
  8. Oracle数据常用操作
  9. java:calendar类及一些比较实用的utils(一)
  10. 16.oauth2 + oidc 实现 client部分