hhh我又开始水题目了

题意:给一张有向图,多次询问一个点到另一个点刚好走$k$步的方案数取模,点数很小


每个$a,b,k$的询问直接把邻接矩阵$map$自乘$k$次后$map[a][b]$就是答案了,别问我怎么证x

话说这个题的范围还可以大好多的…$k$这么小不用快速幂应该都行

#include<cstdio>
#include<cstring>
const int MOD=1000;
const int N=25;
struct matrix
{
int s[N][N];
matrix(){memset(s,0,sizeof(s));}
};
int n,m,T;
inline matrix mul(matrix a,matrix b)
{
matrix res;
for(register int i=0;i<n;i++)
for(register int j=0;j<n;j++)
for(register int k=0;k<n;k++)
res.s[i][j]=(res.s[i][j]+(a.s[i][k]*b.s[k][j])%MOD)%MOD;
return res;
}
inline matrix pow(matrix a,int b)
{
matrix res;
for(register int i=0;i<n;i++)res.s[i][i]=1;
for(;b;b>>=1,a=mul(a,a))if(b&1)res=mul(res,a);
return res;
}
int main()
{
//freopen("input.in","r",stdin);
while(scanf("%d%d",&n,&m)==2&&(n+m))
{
matrix map;
for(register int i=1;i<=m;i++)
{
int u,v;scanf("%d%d",&u,&v);
map.s[u][v]=1;
}scanf("%d",&T);
while(T--)
{
int u,v,k;
scanf("%d%d%d",&u,&v,&k);
matrix a;a=map;
a=pow(a,k);printf("%d\n",a.s[u][v]%MOD);
}
}
return 0;
}

最新文章

  1. [LeetCode] Roman to Integer 罗马数字转化成整数
  2. C++箴言:理解typename的两个含义
  3. 在JAVA中,关于反射机制的讨论
  4. EXT Grid 默认展开所有行
  5. ThinkPHP 3.2.3 简单后台模块开发(一)常用配置
  6. Android基础:Activity
  7. 快速升级php5.6
  8. Stanford机器学习---第八讲. 支持向量机SVM
  9. AutoCompleteTextView自动填充文本
  10. phpcms日期时间
  11. 那些年,学swift踩过的坑
  12. mass种子模块之domready
  13. Introducing: Machine Learning in R(转)
  14. 夏令营讲课内容整理 Day 7.
  15. android studio gradle 更新方法。
  16. [转]boost::python开发环境搭建
  17. genymotion 模拟器内安装软件 the app contains ARM native code and your devices cannot run ARM instructions
  18. Java并发编程73道面试题及答案 —— 面试稳了
  19. Docker7之Docker overview
  20. 线段树模板(HDU 6356 Glad You Came)

热门文章

  1. 【硬件】HDMI接口HPD原理
  2. 用MindManager画思维导图的好处有哪些?
  3. Python变量引用
  4. 【P2634】聪聪可可——点分治
  5. Jmeter-记一次AES加密登录实例
  6. SpringBoot整合Elasticsearch7
  7. [BUGCASE]Webpack打包报JavaScript堆内存泄漏的错误
  8. 第10.8节 Python包的导入方式详解
  9. PyQt(Python+Qt)学习随笔:QTableView的cornerButtonEnabled属性
  10. 性能测试学习之路 (二)jmeter详解(jmeter执行顺序 &amp;&amp; 作用域 &amp;&amp; 断言 &amp;&amp; 事务 &amp;&amp;集合点 )