hdu 2157 How many ways?? (可达矩阵)_diaoxie5337的博客-程序员秘密

题意:给你一个有向图,从A 点到 B点恰好经过k个点的方案数 (k < 20), 可以走重复边

思路:利用离散数学中的可达矩阵,可达矩阵的K次幂便是从i到j走K步能到达的方案数

代码:

#include <cstdio>
#include <cstring>
#include <iostream>

using namespace std;

typedef long long ll;
int N,M,P;
const int MOD=1000;
//int MOD;
struct  Matrix
{
    ll m[25][25];
};

Matrix A;
Matrix I;

Matrix multi(Matrix a,Matrix b)
{
    Matrix ans;
    for(int i=0;i<N;i++)
    {
       for(int j=0;j<M;j++)
       {
          ans.m[i][j]=0;
          for(int k=0;k<P;k++)
          {
             ans.m[i][j]+=a.m[i][k]*b.m[k][j]%MOD;
          }
          ans.m[i][j]%=MOD;
       }
    }
    return ans;
}

Matrix power(Matrix a,int k)
{
    Matrix ans=I,p=a;
    while(k)
    {
      if(k&1)
      {
        ans=multi(ans,p);
      }
      k>>=1;
      p=multi(p,p);
    }
    return ans;
}

int main(int argc, char const *argv[])
{
    int m;
    while(cin>>N>>m)
    {
       if(N==0&&m==0) break;
       M=P=N;
       memset(A.m,0,sizeof(A.m));
       while(m--)
       {
          int a,b;
          scanf("%d %d",&a,&b);
          A.m[a][b]=1;
       }
       for(int i=0;i<N;i++)
       I.m[i][i]=1;
       int T;
       cin>>T;
       while(T--)
       {
           int st,ed,k;
           scanf("%d %d %d",&st,&ed,&k);
           Matrix ans = power(A,k);
           printf("%lld\n",ans.m[st][ed]);
       }
    }
       return 0;
}

 

转载于:https://www.cnblogs.com/simplekinght/p/6662224.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/diaoxie5337/article/details/102070133

智能推荐

Visual Studio Code的插件配置_悟初境的博客-程序员秘密

下面是适合我的VSCode在各种环境的插件配置

python ctypes模块引入kernel32.dll时 调用ReadProcessMemory返回参数错误_kernel32函数调用结果有误_qq_39431717的博客-程序员秘密

错误描述:读取内存地址为 0x00642650 :kernerl32 = ctypes.windll.LoadLibrary(r"C:\Windows\System32\kernel32.dll")print(“kernerl32”,kernerl32)data1 = ctypes.c_long()kernerl32.ReadProcessMemory(int(phwnd),0x00642650 , ctypes.byref(data1), 4, None)上述代码正常运行;当读取64位程序

【单片机笔记】详解如何用廉价NTC电阻准确高效的测量温度(附源码)_单片机ntc测温电路_沉默的小宇宙的博客-程序员秘密

使用热敏电阻读取ADC值并根据NTC参数表得到温度数据:参考原理图:本文介绍的程序对应的热敏电阻型号是NTC-MF52AT 10K 5%精度 B值:3950 1%长这样虽然不及一些高价带协议需要驱动协议的传感器,但是价格摆在这里的,不到一毛钱就可以测温了,精度上还是能用的,而且驱动也非常简单。另外注意的是C文件里面的线性表,就是那个常量数组,需要根据所使用的探头的厂家参数...

Javascript将图片的绝对路径转换为base64编码_屯庆笔记的博客-程序员秘密

我需要在vue里将图片的绝对路径转换为base64编码,去网上找了顺便改了一下代码。参考他人的代码 https://www.cnblogs.com/tugenhua0707/p/4666076.html我们可以使用canvas.toDataURL的方法将图片的绝对路径转换为base64编码;在这我们引用的是淘宝首页一张图片如下: var img = &quot;https://img.alicd...

python拟合反比例函数_基于梯度下降算法的线性回归拟合(附python/matlab/julia代码)..._知路乎哈的博客-程序员秘密

梯度下降梯度下降法的原理梯度下降法(gradient descent)是一种常用的一阶(first-order)优化方法,是求解无约束优化问题最简单、最经典的方法之一。梯度下降最典型的例子就是从山上往下走,每次都寻找当前位置最陡峭的方向小碎步往下走,最终就会到达山下(暂不考虑有山谷的情况)。首先来解释什么是梯度?这就要先讲微分。对于微分,相信大家都不陌生,看几个例子就更加熟悉了。先来看单变量的微分...

随便推点

Postman调用接口传递Date格式参数时,参数定义规则_Yan_Less的博客-程序员秘密

Postman调用接口传递Date格式参数{“data”:[{“receipterId”:“1809”,“payerName”:“1111”,“fundUsageCode”:“101”}],“addedTime”:“2019-12-04T00:00:00Z”}时间格式中间加“T”,末尾加“Z”即可解决服务端无法正确解析传递参数问题!具体原因是Jason只支持一下几种格式:“y...

python操作excel-python操作excel_weixin_37988176的博客-程序员秘密

Python操作Excel,读写xls/xlsx文件已经有不少优秀的库。例如xlrd, xlsxwriter,还有微软自己开发的pyvot。假如,你用的是windows系统,而且安装了Office。最全面的操作方式(当然,也是最费资源的操作方式)是Python创建Excel对象,直接操作Excel。该方法可以完美移植Excel vba代码。也就是说,我们可以原生态的方式处理该类问题。如果你只是简单...

SEED-XDS560v2 驱动_seed xds560v2驱动安装_柒柒_U的博客-程序员秘密

亲测好用!刚刚安装成功特共享。安装路径 c:\ti\ccsv6\ccs_base,可惜资源已存在不让我上传,若有需要可留言或私信。

gridview 与 detailsview 联动 共用一个数据源 完美解决 排序分页_伊一线天的博客-程序员秘密

对于共用数据源方面,网上多是sqldatasource 这个办法最好的是再gridview_selected事件中添加下面代码 DetailsView1.PageIndex = GridView1_SelectedRow.DataItemIndex。 这个代码意思就是让DetailsView的对应的数据视图的数据行号等于GridView对应数据视图的数据行的行号。 因为两个数据控件的数据...

ALDS1_3_B-Queue(队列)_zqhf123的博客-程序员秘密

There are n processes in a queue. Each process has namei and timei. The round-robin scheduling handles the processes in order. A round-robin scheduler gives each process a quantum (a time slot) and in...

python涉及的领域_浅析Python五大领域应用_努力像Jarvis一样的博客-程序员秘密

随着国家战略对“新基建”实施提上日程,大数据将会得到进一步推广和应用。那么在作为大数据开发语言之一的Python语言,又有哪些用武之地呢,我们可以用一张图来简单阐述。一、网络爬虫网络爬虫是Python比较常用的一个场景,国际上,google在早期大量地使用Python语言作为网络爬虫的基础,带动了整个Python语言的应用发展。requests模块在python内置模块的基础上进行了高度的封装,从...

推荐文章

热门文章

相关标签