1875: [SDOI2009]HH去散步 矩阵乘法
来源:互联网 发布:shell脚本编程pdf 编辑:程序博客网 时间:2024/05/20 08:00
由于不能走来时的边,可以把边转化成点,其余就是裸的矩阵乘法了。
#include<iostream>#include<cstdio>#include<cstring>#define M 125#define P 45989using namespace std;int n,m,t,a,b,cnt,sum;int head[25];int list[M],next[M],from[M];inline int read(){ int a=0,f=1; char c=getchar(); while (c<'0'||c>'9') {if (c=='-') f=-1; c=getchar();} while (c>='0'&&c<='9') {a=a*10+c-'0'; c=getchar();} return a*f;}struct Matrix{ int a[M][M]; Matrix() { memset(a,0,sizeof(a)); } friend Matrix operator*(Matrix a,Matrix b) { Matrix ans; for (int i=0;i<=cnt;i++) for (int j=0;j<=cnt;j++) for (int k=0;k<=cnt;k++) (ans.a[i][j]+=a.a[i][k]*b.a[k][j]%P)%=P; return ans; } friend Matrix operator^(Matrix a,int b) { Matrix ans; for (int i=0;i<=cnt;i++) ans.a[i][i]=1; for (;b;b>>=1,a=a*a) if (b&1) ans=ans*a; return ans; }};Matrix A,ans;inline void insert(int x,int y){ next[++cnt]=head[x]; head[x]=cnt; from[cnt]=x; list[cnt]=y;}int main(){ n=read(); m=read(); t=read(); a=read()+1; b=read()+1; for (int i=1;i<=m;i++) { int u=read()+1,v=read()+1; insert(u,v); insert(v,u); } for (int i=head[a];i;i=next[i]) ans.a[0][i]++; for (int i=1;i<=cnt;i++) for (int j=head[list[i]];j;j=next[j]) if (j!=i+((i&1)?1:-1)) A.a[i][j]++; A=A^(t-1); ans=ans*A; for (int i=1;i<=cnt;i++) if (list[i]==b) (sum+=ans.a[0][i])%=P; cout << sum << endl; return 0;}
0 0
- 1875: [SDOI2009]HH去散步 矩阵乘法
- BZOJ-1875-HH去散步-SDOI2009-矩阵乘法
- BZOJ 1875 [SDOI2009]HH去散步 矩阵乘法
- bzoj 1875: [SDOI2009]HH去散步 动态规划+矩阵乘法
- [BZOJ]1875: [SDOI2009]HH去散步 矩阵乘法优化DP
- BZOJ1875 [SDOI2009]HH去散步(矩阵乘法)
- 【bzoj1875】 SDOI2009 HH去散步 dp+矩阵乘法
- 【BZOJ1875】[SDOI2009]HH去散步(矩阵乘法)
- 【矩阵乘法优化DP】BZOJ1875 [SDOI2009]HH去散步
- 【DP+矩阵乘法】BZOJ1875(SDOI2009)[HH去散步]题解
- 1875: [SDOI2009]HH去散步
- [DP 矩阵快速幂] BZOJ 1875 [SDOI2009]HH去散步
- bzoj 1875: [SDOI2009]HH去散步(矩阵优化DP)
- BZOJ 1875 [SDOI2009]HH去散步 (矩阵快速幂)
- 【BZOJ】1875 [SDOI2009]HH去散步 DP+矩阵优化
- bzoj1875 [SDOI2009]HH去散步(矩阵)
- 【SDOI2009】HH去散步
- [SDOI2009]HH去散步
- 技术流水账 图床
- Hibernate的1级、2级Cache管理及EhCache的使用
- Go 语言运行时环境变量快速导览
- 业界个人观系列 开源在成都
- golang go语言与C语言互调,通过cgo
- 1875: [SDOI2009]HH去散步 矩阵乘法
- Practical Rendering and Computation with Direct3D 11学习笔记(2.1.1)
- golang go语言 gomobile 移动端开发笔记
- windows程序设计学习笔记-键盘,鼠标,计时器
- 业界个人观系列 msup技术开放日
- 个人以为的一些不错的IT站
- 结合linux命令讲解线上用hive拉取hbase数据
- 选择人物主角方法二 (通过摄像机的变化)
- FZU 1011 Power Strings(KMP匹配算法)