link

$solution:$

将边化为点后重新建矩阵,跑$T-1$幂即可(因为跑的是新边)。

最后直接找与$x,y$所相连的边即可。

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#define int long long
#define mod 45989
using namespace std;
inline int read(){int f=1,ans=0;char c=getchar();while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}while(c>='0'&&c<='9'){ans=ans*10+c-'0';c=getchar();}return f*ans;
}
const int MAXN=101;
struct Matrix{int a[MAXN<<1][MAXN<<1];void init(){memset(a,0,sizeof(a));return;}
}F,G;
int cnt,n,m,A,B,T,sta[MAXN][MAXN<<1],End[MAXN<<1];
Matrix operator*(Matrix x1,Matrix x2){Matrix x3;x3.init();for(int i=1;i<=(m<<1);i++)for(int k=1;k<=(m<<1);k++)for(int j=1;j<=(m<<1);j++) x3.a[i][j]+=x1.a[i][k]*x2.a[k][j],x3.a[i][j]%=mod;return x3;
}
Matrix ksm(Matrix a,int b){Matrix ans;ans.init();for(int i=1;i<=(m<<1);i++) ans.a[i][i]=1;while(b){if(b&1) ans=ans*a;a=a*a,b>>=1;}return ans;
}int ans;
int uu[MAXN<<1],vv[MAXN<<1];
bool check(int idi,int idj){if(vv[idi]==uu[idj]) return 1;return 0;
}
signed 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;if(v==B) End[++End[0]]=i;if(u==B) End[++End[0]]=i+m; sta[u][++sta[u][0]]=i;uu[i]=u,vv[i]=v;sta[v][++sta[v][0]]=i+m;uu[i+m]=v,vv[i+m]=u;}F.init(),G.init();for(int i=1;i<=(m<<1);i++){for(int j=1;j<=(m<<1);j++) if(check(i,j)&&(i+m!=j&&j+m!=i)) G.a[i][j]=1;}//print(G);//printf("=========================\n");F=ksm(G,T-1);//print(F);//for(int i=1;i<=End[0];i++) printf("End(%d):%d\n",i,End[i]);//for(int i=1;i<=sta[A][0];i++) printf("sta(%d):%d\n",i,sta[A][i]);for(int i=1;i<=sta[A][0];i++)for(int j=1;j<=End[0];j++) ans+=F.a[sta[A][i]][End[j]],ans%=mod;printf("%lld\n",ans);
}

View Code

转载于:https://www.cnblogs.com/si-rui-yang/p/10601789.html

[SDOI2009] HH去散步 (矩阵乘法)相关推荐

  1. BZOJ 1875 [SDOI2009]HH去散步 矩阵乘法

    题意: 给定一张无向图,每条路的长度都是1,没有自环,可能有重边,给定起点与终点,求从起点走t步到达终点的方案数. 每一步走的时候要求不能走上一条刚刚走的路. 解析: 显然需要搞出个矩阵之后矩乘. 然 ...

  2. BZOJ 1875[SDOI2009]HH去散步

    题面: 1875: [SDOI2009]HH去散步 Time Limit: 20 Sec  Memory Limit: 64 MB Submit: 1750  Solved: 851 [Submit] ...

  3. P2151 [SDOI2009]HH去散步

    P2151 [SDOI2009]HH去散步 题意: HH有个一成不变的习惯,喜欢饭后百步走.所谓百步走,就是散步,就是在一定的时间 内,走过一定的距离. 但是同时HH又是个喜欢变化的人,所以他不会立刻 ...

  4. 迎开学水题狂欢赛(舞踏会[dp+三叉树],HH去散步[矩阵快速幂],排序[模拟],铁路旅行[线段树])

    快速简单记录老师口胡(可能就我自己看得懂了吧-) 文章目录 T1:舞踏会 title solution code T2:HH去散步 title solution code T3:排序 title so ...

  5. [SDOI2009]HH去散步(矩阵)

    题目描述 HH有个一成不变的习惯,喜欢饭后百步走.所谓百步走,就是散步,就是在一定的时间 内,走过一定的距离. 但是同时HH又是个喜欢变化的人,所以他不会立刻沿着刚刚走来的路走回. 又因为HH是个喜欢 ...

  6. 【47.40%】【BZOJ 1875】[SDOI2009]HH去散步

    Time Limit: 20 Sec  Memory Limit: 64 MB Submit: 1363  Solved: 646 [Submit][Status][Discuss] Descript ...

  7. 洛谷-2151 [SDOI2009]HH去散步

    题目描述 HH有个一成不变的习惯,喜欢饭后百步走.所谓百步走,就是散步,就是在一定的时间 内,走过一定的距离. 但是同时HH又是个喜欢变化的人,所以他不会立刻沿着刚刚走来的路走回. 又因为HH是个喜欢 ...

  8. 矩阵——洛谷P2151 [SDOI2009]HH去散步

    https://daniu.luogu.org/problem/show?pid=2151#sub 题目就是说我们不可以回走: 但是环还是可以的: 如果上次1->3 现在不可以直接3->1 ...

  9. [SDOI2009]HH去散步

    题目描述 HH有个一成不变的习惯,喜欢饭后百步走.所谓百步走,就是散步,就是在一定的时间 内,走过一定的距离. 但是同时HH又是个喜欢变化的人,所以他不会立刻沿着刚刚走来的路走回. 又因为HH是个喜欢 ...

  10. 洛谷P2151 [SDOI2009]HH去散步

    Description HH有个一成不变的习惯,喜欢饭后百步走.所谓百步走,就是散步,就是在一定的时间 内,走过一定的距离. 但是同时HH又是个喜欢变化的人,所以他不会立刻沿着刚刚走来的路走回. 又因 ...

最新文章

  1. php mysqli参数,PHP5 mysqli 绑定参数
  2. java ADT生成带签名的apk
  3. 【行为型模式】《大话设计模式》——读后感 (16)加薪非要老板批?——职责链模式...
  4. 如何用python和pip安装在txt文件中配置好版本的库包
  5. kafka-manager安装
  6. Java 8 日期和时间解读
  7. 【转】1.C Task.CompletedTask和Task.Result小记
  8. 学术人必备!懒人制作学术会议Oral/Spotlight Video指南
  9. python类介绍_Python基础介绍 | Class类
  10. list、tuple、dict、set、map
  11. sequelize 外键关联_用Sequelize计算关联条目
  12. java nio 关闭channel_JAVA NIO(二)Channel通道
  13. python实践gcForest模型对鸢尾花数据集iris进行分类
  14. IPQ8074板载12天线符合802.11ax标准双频工业级嵌入式无线AP主板
  15. 计算机特殊的标点符号教案,《标点符号的输入》教学设计
  16. 使用LR和XGBoost跑通criteo点击率预测数据集
  17. 【笔记】SQL查询语句的基本使用方法
  18. -- 27、 查询出只有两门课程的全部学生的学号和姓名(不重点)(自己做出)
  19. matlab实验八,matlab实验八
  20. linux挂载raw设备,linux创建raw设备

热门文章

  1. shouldband绑定数据的办法
  2. openfeign seata事务不回滚_Spring,你为何中止我的事务?
  3. ansys linux运行_如何在linux系统下启动workbench。谢谢啦。 - 仿真模拟 - 小木虫 - 学术 科研 互动社区...
  4. 深入分析java线程池的实现原理(转载)
  5. 这次是16.7亿元!新能源汽车骗补何时休?
  6. arcgis api for js实现克里金插值渲染图--不依赖GP服务
  7. MySQL Data目录查找并迁移到data文件夹中
  8. TVideoGrabber如何将网络摄像头影像实时发布到网络
  9. 生活随笔:师弟,加油
  10. Step by Step WebMatrix网站开发之一:Webmatrix安装