正题

题目链接:https://jzoj.net/senior/#main/show/3847


题目大意

nnn个点mmm条边,第iii个点要求hih_ihi​时才可以到达。求经过ttt时从点1到点nnn的方案数。


解题思路

因为hih_ihi​较小,设zi,kz_{i,k}zi,k​表示iii时到kkk的方案数,转移到最大的hih_ihi​后就用矩阵乘法处理。


codecodecode

#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
const ll N=75,XJQ=10086;
struct matrix{ll a[N][N];
}f;
ll n,m,t,h[N],z[N][N],ans,maxs;
matrix operator*(matrix &a,matrix &b){matrix c;memset(c.a,0,sizeof(c.a));for(ll i=1;i<=n;i++)for(ll j=1;j<=n;j++)for(ll k=1;k<=n;k++)(c.a[i][j]+=a.a[i][k]*b.a[k][j]%XJQ)%=XJQ;return c;
}
matrix ksm(matrix f,ll b){matrix ans;memset(ans.a,0,sizeof(ans.a));for(ll i=1;i<=n;i++)ans.a[i][i]=1;while(b){if(b&1) ans=ans*f;f=f*f;b>>=1;}return ans;
}
int main()
{scanf("%lld%lld%lld",&n,&m,&t);for(ll i=1;i<=n;i++){scanf("%lld",&h[i]);maxs=max(maxs,h[i]);f.a[i][i]++;}for(ll i=1;i<=m;i++){ll x,y;scanf("%lld%lld",&x,&y);f.a[x][y]++;}z[0][1]=1;maxs=min(t,maxs);for(ll i=1;i<=maxs;i++){for(ll x=1;x<=n;x++)for(ll y=1;y<=n;y++)if(f.a[x][y]&&h[y]<=i)z[i][y]=(z[i][y]+z[i-1][x]*f.a[x][y]%XJQ)%XJQ;}f=ksm(f,t-maxs);for(ll x=1;x<=n;x++)for(ll y=1;y<=n;y++)(z[maxs+1][y]+=z[maxs][x]*f.a[x][y]%XJQ)%=XJQ;printf("%lld",z[maxs+1][n]);
}

jzoj3847-都市环游【矩阵乘法】相关推荐

  1. jzoj 3847. 都市环游(travel) (Standard IO)

    Description 因为SJY干的奇怪事情过多,SJY收到了休假的通知,于是他准备在都市间来回旅游.SJY有一辆车子,一开始行驶性能为0,每过1时间行驶性能就会提升1点.每个城市的道路都有性能要求 ...

  2. 如何在CPU上优化GEMM矩阵乘法

    如何在CPU上优化GEMM矩阵乘法 How to optimize GEMM on CPU (TL;DR) TVM 提供抽象接口,允许用户分别描述算法和算法的实现组织(所谓的调度).通常,在高性能调度 ...

  3. CPU的自动调度矩阵乘法

    CPU的自动调度矩阵乘法 这是一个有关如何对CPU使用自动调度程序的文档. 与依靠手动模板定义搜索空间的基于模板的autotvm不同,自动调度程序不需要任何模板.用户只需要编写计算声明,而无需任何调度 ...

  4. 十个利用矩阵乘法解决的经典题目

    出自matrix67.com 好像目前还没有这方面题目的总结.这几天连续看到四个问这类题目的人,今天在这里简单写一下.这里我们不介绍其它有关矩阵的知识,只介绍矩阵乘法和相关性质.     不要以为数学 ...

  5. [学习笔记]矩阵乘法及其优化dp

    1.定义: $c[i][j]=\sum a[i][k]\times b[k][j]$ 所以矩阵乘法有条件,(n*m)*(m*p)=n*p 即第一个矩阵的列数等于第二个矩阵的行数,否则没有意义. 2.结 ...

  6. ICML 2021:矩阵乘法无需相乘,速度提升100倍,MIT开源最新近似算法

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI 在不做乘 ...

  7. 大佬是怎么优雅实现矩阵乘法的?

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者丨立交桥跳水冠军 来源丨https://zhuanlan.zhi ...

  8. 【Scala-spark.mlib】本地矩阵乘法计算效率比较(稠密稀疏哪家强?)

    矩阵乘法效率比较 1. 矩阵乘法 2. 效率比较  2.1. DenseMatrix(50% zeros) X DenseMatrix  2.2. SparseMatrix X DenseMatrix ...

  9. 0x34.数学 - 矩阵乘法

    目录 矩阵 luogu P3390 [模板]矩阵快速幂 AcWing 205. 斐波那契 P1939 [模板]矩阵加速(数列) AcWing 206. 石头游戏 声明: 本系列博客是<算法竞赛进 ...

最新文章

  1. GitHub有望在中国开设子公司?
  2. 图像分割 | FCN数据集制作的全流程(图像标注)
  3. 中怎么均化走线_PCB板上多长的走线才是传输线?答案是……
  4. 招几个兄弟和我一起做项目
  5. android学习笔记42——图形图像处理2——绘图
  6. sqlite 事务处理 java_SQLite事务处理
  7. Android Sensor架构和原理分析
  8. Css(常用的特殊效果)
  9. Internet Download Manager(IDM下载器)
  10. VC2012换字体问题
  11. 关于FTTx(Fiber To The X:光纤接入)
  12. BZOJ 3717: [PA2014]Pakowanie 状压dp
  13. 打印机驱动无法安装到计算机是,打印机后台程序服务没有运行,打印机驱动无法安装,打印机驱动安装失败-中关村在线...
  14. 程序猿郭小喵曾经的实习故事
  15. 信号与系统之(二)傅里叶级数和傅里叶变换
  16. 阿里云研究中心主任田丰: 如何从实体经济走向智能产业
  17. 安卓上哔哩哔哩视频的导出
  18. Maximum Noise Fraction(MNF)算法理解
  19. U-Boot 图形化配置
  20. React开发简书总结

热门文章

  1. python的网页解析器_python 之网页解析器
  2. linux一键启动,Linux一键启动、停止、重启Tomcat sh脚本
  3. 最近公共祖先_[LeetCode] 236. 二叉树的最近公共祖先
  4. 软件构造学习笔记-实验2
  5. 什么事计算机事实性知识,《人工智能》复习要点
  6. Fibonacci Sum HDU - 6755【2020 Multi-University Training Contest 1】斐波那契数列变形+二项式定理
  7. 第二讲 命令源码文件
  8. SpringCloud + Docker
  9. java程序员选择多个offer时需要看重哪些?_对不起,我们公司不要本科以下的大学生,学历对于程序员重不重要...
  10. 数据结构--图的广度优先搜索