jzoj3847-都市环游【矩阵乘法】
正题
题目链接: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-都市环游【矩阵乘法】相关推荐
- jzoj 3847. 都市环游(travel) (Standard IO)
Description 因为SJY干的奇怪事情过多,SJY收到了休假的通知,于是他准备在都市间来回旅游.SJY有一辆车子,一开始行驶性能为0,每过1时间行驶性能就会提升1点.每个城市的道路都有性能要求 ...
- 如何在CPU上优化GEMM矩阵乘法
如何在CPU上优化GEMM矩阵乘法 How to optimize GEMM on CPU (TL;DR) TVM 提供抽象接口,允许用户分别描述算法和算法的实现组织(所谓的调度).通常,在高性能调度 ...
- CPU的自动调度矩阵乘法
CPU的自动调度矩阵乘法 这是一个有关如何对CPU使用自动调度程序的文档. 与依靠手动模板定义搜索空间的基于模板的autotvm不同,自动调度程序不需要任何模板.用户只需要编写计算声明,而无需任何调度 ...
- 十个利用矩阵乘法解决的经典题目
出自matrix67.com 好像目前还没有这方面题目的总结.这几天连续看到四个问这类题目的人,今天在这里简单写一下.这里我们不介绍其它有关矩阵的知识,只介绍矩阵乘法和相关性质. 不要以为数学 ...
- [学习笔记]矩阵乘法及其优化dp
1.定义: $c[i][j]=\sum a[i][k]\times b[k][j]$ 所以矩阵乘法有条件,(n*m)*(m*p)=n*p 即第一个矩阵的列数等于第二个矩阵的行数,否则没有意义. 2.结 ...
- ICML 2021:矩阵乘法无需相乘,速度提升100倍,MIT开源最新近似算法
点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI 在不做乘 ...
- 大佬是怎么优雅实现矩阵乘法的?
点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者丨立交桥跳水冠军 来源丨https://zhuanlan.zhi ...
- 【Scala-spark.mlib】本地矩阵乘法计算效率比较(稠密稀疏哪家强?)
矩阵乘法效率比较 1. 矩阵乘法 2. 效率比较 2.1. DenseMatrix(50% zeros) X DenseMatrix 2.2. SparseMatrix X DenseMatrix ...
- 0x34.数学 - 矩阵乘法
目录 矩阵 luogu P3390 [模板]矩阵快速幂 AcWing 205. 斐波那契 P1939 [模板]矩阵加速(数列) AcWing 206. 石头游戏 声明: 本系列博客是<算法竞赛进 ...
最新文章
- GitHub有望在中国开设子公司?
- 图像分割 | FCN数据集制作的全流程(图像标注)
- 中怎么均化走线_PCB板上多长的走线才是传输线?答案是……
- 招几个兄弟和我一起做项目
- android学习笔记42——图形图像处理2——绘图
- sqlite 事务处理 java_SQLite事务处理
- Android Sensor架构和原理分析
- Css(常用的特殊效果)
- Internet Download Manager(IDM下载器)
- VC2012换字体问题
- 关于FTTx(Fiber To The X:光纤接入)
- BZOJ 3717: [PA2014]Pakowanie 状压dp
- 打印机驱动无法安装到计算机是,打印机后台程序服务没有运行,打印机驱动无法安装,打印机驱动安装失败-中关村在线...
- 程序猿郭小喵曾经的实习故事
- 信号与系统之(二)傅里叶级数和傅里叶变换
- 阿里云研究中心主任田丰: 如何从实体经济走向智能产业
- 安卓上哔哩哔哩视频的导出
- Maximum Noise Fraction(MNF)算法理解
- U-Boot 图形化配置
- React开发简书总结
热门文章
- python的网页解析器_python 之网页解析器
- linux一键启动,Linux一键启动、停止、重启Tomcat sh脚本
- 最近公共祖先_[LeetCode] 236. 二叉树的最近公共祖先
- 软件构造学习笔记-实验2
- 什么事计算机事实性知识,《人工智能》复习要点
- Fibonacci Sum HDU - 6755【2020 Multi-University Training Contest 1】斐波那契数列变形+二项式定理
- 第二讲 命令源码文件
- SpringCloud + Docker
- java程序员选择多个offer时需要看重哪些?_对不起,我们公司不要本科以下的大学生,学历对于程序员重不重要...
- 数据结构--图的广度优先搜索