bzoj1297 / P4159 [SCOI2009]迷路
如果边权只有 0/1 那么不就是一个灰常简单的矩阵快速幂吗!
然鹅边权 $<=9$
所以我们把每个点拆成9个点!
解决~
#include<iostream>
#include<cstdio>
#include<cstring>
#define re register
using namespace std;
const int mod=;
int m,n,t;long long q;
struct matrix{
int a[][];
matrix(){memset(a,,sizeof(a));}
matrix operator * (const matrix &tmp) const{
matrix c;
for(int i=;i<=n;++i)
for(int j=;j<=n;++j)
for(int k=;k<=n;++k)
c.a[i][j]=(c.a[i][j]+a[i][k]*tmp.a[k][j])%mod;
return c;
}
matrix Pow(matrix x,int y){
matrix res;
for(int i=;i<=n;++i) res.a[i][i]=;
for(;y;y>>=,x=x*x)
if(y&) res=res*x;
return res;
}
}st;
int idx(int x,int y){return x+m*y;}//新点编号
int main(){
scanf("%d%d",&m,&t);n=m*;
for(int i=;i<=m;++i){
for(int j=;j<=;++j)
st.a[idx(i,j)][idx(i,j-)]=;//规定idx(i,0)作为原图的点向其他点连边,其他点与该点的边权就转化为连到idx(i,dist-1)上
scanf("%lld",&q);
for(int j=m;j>=;--j,q/=)
if(q%) st.a[i][idx(j,q%-)]=;
}st=st.Pow(st,t);
printf("%d",st.a[][m]);
return ;
}
bzoj1297 / P4159 [SCOI2009]迷路的更多相关文章
- 【BZOJ1297】[SCOI2009]迷路(矩阵快速幂)
		[BZOJ1297][SCOI2009]迷路(矩阵快速幂) 题面 BZOJ 洛谷 题解 因为边权最大为\(9\),所以记录往前记录\(9\)个单位时间前的.到达每个点的方案数就好了,那么矩阵大小就是\ ... 
- [bzoj1297] [洛谷P4159] [SCOI2009] 迷路
		Description windy在有向图中迷路了. 该有向图有 N 个节点,windy从节点 0 出发,他必须恰好在 T 时刻到达节点 N-1. 现在给出该有向图,你能告诉windy总共有多少种不同 ... 
- BZOJ1297:[SCOI2009]迷路——题解
		http://www.lydsy.com/JudgeOnline/problem.php?id=1297 windy在有向图中迷路了. 该有向图有 N 个节点,windy从节点 0 出发,他必须恰好在 ... 
- 【bzoj1297】[SCOI2009]迷路  矩阵乘法
		题目描述 给出一个 $n$ 个点的有向图,每条边的权值都在 $[1,9]$ 之间.给出 $t$ ,求从 $1$ 到 $n$ ,经过路径边权和恰好为 $t$ 的方案数模2009. 输入 第一行包含两个整 ... 
- P4159 [SCOI2009]迷路
		传送门 先考虑只有 01 边权的情况 显然可以DP+矩阵加速 但是现在边权不止 1 然鹅最大也只有 9 所以从这里入手,把点拆成 9 个,然后点之间的边权也就可以变成 1 了 同样的转移和矩阵加速 注 ... 
- Luogu P4159 [SCOI2009]迷路 矩阵快速幂+精巧转化
		大致就是矩阵快速幂吧.. 这个时候会发现这些边权$\le 9$,然后瞬间想到上回一道题:是不是可以建一堆转移矩阵再建一个$lcm(1,2,3,4,5,6,7,8,9)$的矩阵?...后来发现十分的慢q ... 
- LUOGU P4159 [SCOI2009]迷路(矩阵乘法)
		传送门 解题思路 以前bpw讲过的一道题,顺便复习一下矩阵乘法.做法就是拆点,把每个点拆成\(9\)个点,然后挨个连边.之后若\(i\)与\(j\)之间的边长度为\(x\),就让\(i\)的第\(x\ ... 
- 【矩阵快速幂】bzoj1297 [SCOI2009]迷路
		1297: [SCOI2009]迷路 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1407 Solved: 1007[Submit][Status ... 
- [Bzoj1297][Scoi2009 ]迷路 (矩阵乘法 + 拆点)
		1297: [SCOI2009]迷路 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1385 Solved: 993[Submit][Status] ... 
随机推荐
- vue脚手架一
			一准备: 在F:/xampp/htdocs/文件夹下检查: 1,node -v; 2,npm -v; 3,淘宝镜像(选装): npm install -g cnpm --registry= https ... 
- [黑金原创教程] FPGA那些事儿《数学篇》- CORDIC 算法
			简介 一本为完善<设计篇>的书,教你CORDIC算法以及定点数等,内容请看目录. 贴士 这本教程难度略高,请先用<时序篇>垫底. 目录 Experiment 01:认识CORD ... 
- 【Android】Android实现自定义带文字和图片的Button
			在Android开发中经常会需要用到带文字和图片的button,下面来讲解一下常用的实现办法. 一.用系统自带的Button实现 最简单的一种办法就是利用系统自带的Button来实现,这种方式代码量最 ... 
- 如何设置Eclipse工作区默认编辑宽度
			1)打开Window => Preferences窗口 2)打开Formatter属性页从Java => CodeStyle => Formatter 3) 单击New创建一个自己 ... 
- java父类可以强制转化成子类吗?
			转自:http://blog.csdn.net/ld422586546/article/details/9707997 Java中父类强制转换成子类的原则:父类型的引用指向的是哪个子类的实例,就能转换 ... 
- Hibernate数据类型映射
			Hibernate映射类型分为两种:内置的映射类型和客户化映射类型.内置映射类型负责把一些常见的Java类型映射到相应的SQL类型:此外,Hibernate还允许用户实现UserType或Compos ... 
- ABP 样板开发框架系列
			--ABP 官网与源码 http://www.aspnetboilerplate.com/ https://github.com/aspnetboilerplate --pdf和docx 文档 htt ... 
- wireshark, loopback
			swapondd if=/dev/zero of=/data/mnt/swap bs=1024 count=8024000 sudo apt-get install wireshark sudo gr ... 
- Django之urls.py详解
			urls.py:URL分发器(路由配置文件)URL配置(URLconf)就像是Django所支撑网站的目录.它的本质是URL模式以及要为该URL模式调用的视图函数之间的映射表.你就是以这种方式告诉Dj ... 
- ovn-sb 摘要
			1.Database Structure Physical network table中包含了和chassis nodes有关的所有信息,包括用于overlay所需的IP地址,支持的tunnel类型以 ... 
