适合给女性朋友的留言,给女性朋友的生日祝福

2023-10-16 1735阅读

如果暴力地把邻接矩阵建出来求解是 O 的,显然无法接受。我们把矩阵的元素写出来, Mi,j=∑kx=1Oi,x?Ij,x 也就是 M=O×IT 这样的话,我们要求的 Md 就可以看成 d=Od?中间的矩阵是 k×k 的,这样复杂度就成了 O 。还有一个问题,直接矩阵乘法求出来的是恰好 d 步走到,我们可以新建一个节点,从终点和他自己向他连边用来累计答案,这样求走d+1步的解就是答案。#include#includeusing namespace std;#define LL unsigned long longconst int maxn=1010,maxk=25,p=1000000007;int o[maxn][maxk],it[maxk][maxn],o1[maxn][maxk],i1[maxk][maxn],a[maxn][maxn],t1[maxn][maxn],t2[maxn][maxn];int n,k;int main(){ //freopen; //freopen; int q,u,v,d,ans; scanf; for (int i=1;i

如果暴力地把邻接矩阵建出来求解是 O(n3logd) 的,显然无法接受。

我们把矩阵的元素写出来, Mi,j=∑kx=1Oi,x?Ij,x

也就是 M=O×IT

这样的话,我们要求的 Md 就可以看成 (OIT)d=O(ITO)d?1I 。中间的矩阵是 k×k 的,这样复杂度就成了 O(k3logd+k2n) 。

还有一个问题,直接矩阵乘法求出来的是恰好 d 步走到,我们可以新建一个节点,从终点和他自己向他连边用来累计答案,这样求走d+1步的解就是答案。

适合给女性朋友的留言,给女性朋友的生日祝福
(图片来源网络,侵删)

#include#includeusing namespace std;#define LL unsigned long longconst int maxn=1010,maxk=25,p=1000000007;int o[maxn][maxk],it[maxk][maxn],o1[maxn][maxk],i1[maxk][maxn],a[maxn][maxn],t1[maxn][maxn],t2[maxn][maxn];int n,k;int main(){ //freopen(\”in.txt\”,\”r\”,stdin); //freopen(\”out.txt\”,\”w\”,stdout); int q,u,v,d,ans; scanf(\”%d%d\”,&n,&k); for (int i=1;i

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]