HDU 2157 - How many ways??
给图,图中任意可达的两点间步数为1
问从图中A点走到B点步数为k的有几条路
祭出离散数学图论那章中的 邻接矩阵A.
设S=Ak
则 S[a][b] 为 a到b,步数为k的不同路的条数
剩下的就是矩阵快速幂了
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int mod=;
struct P{
int a[][];
};
int n,m,t,a,b,k;
P s,c;
P mult(P a,P b)
{
P c;
memset(c.a,,sizeof(c.a));
for(int i=;i<n;i++)
{
for(int j=;j<n;j++)
{
for(int k=;k<n;k++)
c.a[i][j]=(c.a[i][j]+a.a[i][k]*b.a[k][j] )%mod;
}
}
return c;
}
void fuc(int p,P s)
{
memset(c.a,,sizeof(c.a));
for(int i=;i<n;i++) c.a[i][i]=;
while(p)
{
if(p&)
{
c=mult(c,s);
}
s=mult(s,s);
p>>=;
}
}
int main()
{
while(~scanf("%d%d",&n,&m)&&(m+n))
{
memset(s.a,,sizeof(s.a));
for(int i=;i<=m;i++)
{
scanf("%d%d",&a,&b);
s.a[a][b]=;
}
scanf("%d",&t);
for(int i=;i<=t;i++)
{
scanf("%d%d%d",&a,&b,&k);
fuc(k,s);
printf("%d\n",c.a[a][b]);
}
}
}
HDU 2157 - How many ways??的更多相关文章
- HDU 2157 How many ways?? 【矩阵经典8】
任意门:http://acm.hdu.edu.cn/showproblem.php?pid=2157 How many ways?? Time Limit: 2000/1000 MS (Java/Ot ...
- HDU 2157 How many ways?? (邻接矩阵快速幂)
http://acm.hdu.edu.cn/showproblem.php?pid=2157 题意 : 给定一个有向图,问从A点恰好走k步(允许重复经过边)到达B点的方案数mod p的值 从这道题 ...
- HDU 2157 How many ways??(简单线性DP | | 矩阵快速幂)
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=2157 这道题目很多人的题解都是矩阵快速幂写的,矩阵快速幂倒是麻烦了许多了.先给DP的方法 dp[i][ ...
- HDU 2157 How many ways??:矩阵快速幂【i到j共经过k个节点的方法数】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2157 题解: 给你一个有向图,n个节点m条边,问你从i到j共经过k个节点的方法数(不算i点). 题解: ...
- Hdu 2157 How many ways??(DP||矩阵乘法)
How many ways?? Time Limit:1000 MS Memory Limit: 32768 K Problem Description 春天到了, HDU校园里开满了花, 姹紫嫣红, ...
- HDU 2157 How many ways?? 临接矩阵+快速幂
Problem Description 春天到了, HDU校园里开满了花, 姹紫嫣红, 非常美丽. 葱头是个爱花的人, 看着校花校草竞相开放, 漫步校园, 心情也变得舒畅. 为了多看看这迷人的校园, ...
- hdu 2157 How many ways?? ——矩阵十题第八题
Problem Description 春天到了, HDU校园里开满了花, 姹紫嫣红, 非常美丽. 葱头是个爱花的人, 看着校花校草竞相开放, 漫步校园, 心情也变得舒畅. 为了多看看这迷人的校园, ...
- HDU 2157 How many ways?【矩阵快速幂】
题目 春天到了, HDU校园里开满了花, 姹紫嫣红, 非常美丽. 葱头是个爱花的人, 看着校花校草竞相开放, 漫步校园, 心情也变得舒畅. 为了多看看这迷人的校园, 葱头决定, 每次上课都走不同的路线 ...
- HDU 2157 How many ways?? 题解
题目 春天到了, HDU校园里开满了花, 姹紫嫣红, 非常美丽. 葱头是个爱花的人, 看着校花校草竞相开放, 漫步校园, 心情也变得舒畅. 为了多看看这迷人的校园, 葱头决定, 每次上课都走不同的路线 ...
- 【传递闭包】HDU 2157 How many ways??
UPD:现在才发现本题是个传递闭包 题目内容 春天到了,HDU校园里开满了花,姹紫嫣红,非常美丽. 葱头是个爱花的人,看着校花校草竞相开放,漫步校园,心情也变得舒畅. 为了多看看这迷人的校园,葱头决定 ...
随机推荐
- sqlserver2008 中使用MSXML2.ServerXMLHttp拼装soap调用webservice
要调用的接口方法:UP_ACC_inst_Info(string xml) 接口参数:xml格式的字符串 接口功能:传递人员编号.备注到接口进行更新,接口返回更新结果. 实例: declare @st ...
- 1230.2——iOS准备(阅读开发者文档时的笔记)
1.程序启动的过程 .在桌面找到相应的应用的图标 点击图标 .main函数 UIApplication类Every app has exactly one instance of UIAp ...
- 关于css的优先级
样式的优先级 外部样式 < 内部样式 < 内联样式 选择器的优先权 解释: 1. 内联样式表的权值最高 1000: 2. ID 选择器的权值为 100; 3. Class 类选择器的 ...
- JavaScript中的作用域链原理
执行环境 作用域链的形成与执行环境(Execution Environment)相关,在JavaScript当中,产生执行环境有如下3中情形: 1 进入全局环境 2 调用eval函数 3 调用func ...
- date用法
日常工作中经常使用date这个命令,几乎所有与日期时间相关的操作都会跟这个命令扯上点关系.简单写几条经常使用到的date命令,仅供大家参考. 首先检查一下date的版本,注意如果你用的不是GNU da ...
- [C++程序设计]返回指针值的函数
定义指针函数的一般形式为 类型名 *函数名(参数表列); 例如 int *a(int x,int y);
- basename $0的用法
basename 从文件名中去掉路径信息, 只打印出文件名. 结构 basename $0 可以让脚本知道它自己的名字, 也就是, 它被调用的名字. 可以用来显示用法信息, 比如如果你调用脚本的时候缺 ...
- 一次oracle大量数据删除经历
oracle有个数据表现在已经有2500万条数据了,软件用到这个表的数据时就变的特别慢,所以准备把一个月以前的数据全部清除. 我的步骤是(下边操作都是在plsql中运行的) 1.首先 将这个月的数据导 ...
- linux多线程编程之互斥锁
多线程并行运行,共享同一种互斥资源时,需要上互斥锁来运行,主要是用到pthread_mutex_lock函数和pthread_mutex_unlock函数对线程进行上锁和解锁 下面是一个例子: #in ...
- 在Raspberry上使用小度WIFI
小度WIFI价格便宜量又足,我一真用它!做个广告先! 它使用联发科MT7601的芯片,质量不错,就是Raspberry下不能直接支持. 首先下载驱动 http://www.mediatek.com/_ ...