题目:

  

题意:

  找过k条边的路径个数。

分析:

  首先注意一下题意,同一个点过两次算两次,做过类似的,过k条边的最短路,只要搞一个矩阵,然后快速幂就好了,这个也一样,维护信息变一下,然后就好了。

  如果k很大:

    并不影响此种做法。

  如果n很大:

    改成dp。dp[x][k]表示过k个边到点x的路径数,然后就可以了。

代码:

  

#include <cstdio>
#include <cstring>
#include <string>
using namespace std;
const int maxn=+;
const int maxm=+;
int ed[maxm][maxm];
int n;
struct JZ{
int a[maxm][maxm];
JZ(){
memset(a,,sizeof(a));
}
JZ(int s){
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
a[i][j]=ed[i][j];
}
JZ(int s,int k){
memset(a,,sizeof(a));
for(int i=;i<=n;i++)
a[i][i]=;
}
friend JZ operator + (JZ a,JZ b){
JZ c;
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
for(int k=;k<=n;k++){
c.a[i][j]+=b.a[i][k]*a.a[k][j];
c.a[i][j]%=;
}
return c;
}
};
int ha[maxn];
int main(){
int N,m;
while(~scanf("%d%d",&n,&m)&&(m||n)){
memset(ed,,sizeof(ed));
int js1,js2;
for(int i=;i<=m;i++){
scanf("%d%d",&js1,&js2);
ed[js1+][js2+]=;
}
int q;
scanf("%d",&q);
for(int i=;i<=q;i++){
scanf("%d%d%d",&js1,&js2,&N);
bool f=;
JZ D(,);
for(JZ now();N;now=now+now){
if(N&)
D=D+now;
N>>=;
}
printf("%d\n",D.a[js1+][js2+]);
}
}
return ;
}

How many ways??,题解的更多相关文章

  1. HDU 2157 How many ways?? 题解

    题目 春天到了, HDU校园里开满了花, 姹紫嫣红, 非常美丽. 葱头是个爱花的人, 看着校花校草竞相开放, 漫步校园, 心情也变得舒畅. 为了多看看这迷人的校园, 葱头决定, 每次上课都走不同的路线 ...

  2. [LeetCode]题解(python):091 Decode Ways

    题目来源 https://leetcode.com/problems/decode-ways/ A message containing letters from A-Z is being encod ...

  3. LeetCode OJ 题解

    博客搬至blog.csgrandeur.com,cnblogs不再更新. 新的题解会更新在新博客:http://blog.csgrandeur.com/2014/01/15/LeetCode-OJ-S ...

  4. 91. Decode Ways

    题目: A message containing letters from A-Z is being encoded to numbers using the following mapping: ' ...

  5. [LeetCode] Decode Ways 解题思路

    A message containing letters from A-Z is being encoded to numbers using the following mapping: 'A' - ...

  6. 2014年亚洲区域赛北京赛区现场赛A,D,H,I,K题解(hdu5112,5115,5119,5220,5122)

    转载请注明出处: http://www.cnblogs.com/fraud/          ——by fraud 下午在HDU上打了一下今年北京区域赛的重现,过了5题,看来单挑只能拿拿铜牌,呜呜. ...

  7. POJ 3279(Fliptile)题解

    以防万一,题目原文和链接均附在文末.那么先是题目分析: [一句话题意] 给定长宽的黑白棋棋盘摆满棋子,每次操作可以反转一个位置和其上下左右共五个位置的棋子的颜色,求要使用最少翻转次数将所有棋子反转为黑 ...

  8. How many ways(记忆化搜索)

    How many ways Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) To ...

  9. 1675: [Usaco2005 Feb]Rigging the Bovine Election 竞选划区(题解第二弹)

    1675: [Usaco2005 Feb]Rigging the Bovine Election 竞选划区 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit:  ...

随机推荐

  1. TZOJ Start

    描述 After the Online Round contest, we believe that you have already known how to write programs in A ...

  2. redis 分布式锁的简单使用

    RedisLock--让 Redis 分布式锁变得简单 目录 1. 项目介绍 2. 快速使用 2.1 引入 maven 坐标 2.2 注册 RedisLock 2.3 使用 3. 参与贡献 4. 联系 ...

  3. 温故知新-java的I/O模型-BIO&NIO&AIO

    文章目录 摘要 传统的BIO编程 伪异步I/O编程 NIO编程 AIO编程 几种IO模型的对比 netty 参考 你的鼓励也是我创作的动力 Posted by 微博@Yangsc_o 原创文章,版权声 ...

  4. 深浅拷贝 set集合

    数据类型的补充 编码转换 # s1 = '中国' # b1 = s1.encode('utf-8') # # print(b1)-------------->b'\xe4\xb8\xad\xe5 ...

  5. VS Code项目中通过npm包的方式共享代码片段的方案实现

    VS Code项目中通过npm包的方式共享代码片段的方案实现 上周在 "VS Code项目中共享自定义的代码片段方案" 的文章中提到过一个共享代码片段的方案,上周经过调研后并没有发 ...

  6. BUAA_OO_2020_Unit1_总结博客

    BUAA_OO_2020_Unit1_总结 2020年春季学期第四周,OO第一单元落下帷幕,几多欢喜几多愁,现做如下总结(按每次作业的递进顺序) 一.第一次作业(基础的幂函数求导) 基于度量的程序结构 ...

  7. Andrew Ng - 深度学习工程师 - Part 1. 神经网络和深度学习(Week 1. 深度学习概论)

     =================第1周 循环序列模型=============== ===1.1 欢迎来到深度学习工程师微专业=== 我希望可以培养成千上万的人使用人工智能,去解决真实世界的实际问 ...

  8. Kubernetes学习笔记(九):StatefulSet--部署有状态的多副本应用

    StatefulSet如何提供稳定的网络标识和状态 ReplicaSet中的Pod都是无状态,可随意替代的.又因为ReplicaSet中的Pod是根据模板生成的多副本,无法对每个副本都指定单独的PVC ...

  9. Idea 快捷生成类注释与方法注释

    这篇博客应该在刚使用IDEA 的时候就写了.  但是一直忘了.  今天使用新的api 接口文档生成工具 JApiDocs  的时候,看其上面有编码规范, 注释规范. 就想起了IDEA 类中, 方法中快 ...

  10. SpringMVC 学习笔记(六)拦截器

    5.1.处理器拦截器简介 Spring Web MVC的处理器拦截器(如无特殊说明,下文所说的拦截器即处理器拦截器) 类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理. ...