思路:不能走走过来的路,变点交换跑矩阵快速幂。

#include<bits/stdc++.h>
#define LL long long
#define fi first
#define se second
#define mk make_pair
#define PII pair<int, int>
#define y1 skldjfskldjg
#define y2 skldfjsklejg
using namespace std; const int N = 1e5 + ;
const int M = 5e5 + ;
const int inf = 0x3f3f3f3f;
const LL INF = 0x3f3f3f3f3f3f3f3f;
const int mod = ; int n, m, t, S, T, U[N], V[N], b[N]; struct Matrix {
int a[][], n; Matrix(int _n) {
n = _n;
memset(a, , sizeof(a));
} void init() {
for(int i = ; i < n; i++)
a[i][i] = ;
} Matrix operator * (const Matrix &B) const {
Matrix C(n);
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] * B.a[k][j]) % mod;
return C;
} Matrix operator ^ (int b) {
Matrix A = (*this);
Matrix ans(n);
ans.init();
while(b) {
if(b & ) ans = ans * A;
A = A * A; b >>= ;
}
return ans;
}
};
int main() {
scanf("%d%d%d%d%d", &n, &m, &t, &S, &T);
for(int i = ; i <= m; i++) {
scanf("%d%d", &U[i << ], &V[i << ]);
U[i << | ] = V[i << ];
V[i << | ] = U[i << ];
}
m = m << | ;
Matrix A(m + );
for(int i = ; i <= m; i++) {
if(U[i] == S) A.a[][i] = ;
if(V[i] == T) A.a[i][] = ;
for(int j = ; j <= m; j++)
if(V[i] == U[j] && (i ^ j) != )
A.a[i][j] = ;
}
A = A ^ (t + );
printf("%d\n", A.a[][]);
return ;
}

bzoj 1875 矩阵快速幂的更多相关文章

  1. bzoj(矩阵快速幂)

    题意:定义Concatenate(1,N)=1234567……n.比如Concatenate(1,13)=12345678910111213.给定n和m,求Concatenate(1,n)%m. (1 ...

  2. bzoj 2326 矩阵快速幂

    思路:矩阵快速幂搞一搞. #include<bits/stdc++.h> #define LL long long #define fi first #define se second # ...

  3. bzoj 4000 矩阵快速幂优化DP

    建立矩阵,跑快速幂 /************************************************************** Problem: 4000 User: idy002 ...

  4. bzoj 1898 矩阵快速幂

    思路:因为鱼的周期为2, 3, 4, 所以以12个为周期,我们拿走12步得到的矩阵进行快速幂,余下的再进行一次矩阵乘法. #include<bits/stdc++.h> #define L ...

  5. BZOJ 4547 矩阵快速幂

    思路: 肯定每回只加最大值和次大值 如果 一开始的最大值>0且次大值<0 那就一直加 加到次大值>0 搞一个矩阵 推斐波那契数列 求和 就好- //By SiriusRen #inc ...

  6. 【BZOJ】1875: [SDOI2009]HH去散步 矩阵快速幂

    [题意]给定n个点m边的无向图,求A到B恰好经过t条边的路径数,路径须满足每条边都和前一条边不同.n<=20,m<=60,t<=2^30. [算法]矩阵快速幂 [题解]将图的邻接矩阵 ...

  7. BZOJ 2510: 弱题( 矩阵快速幂 )

    每进行一次, 编号为x的数对x, 和(x+1)%N都有贡献 用矩阵快速幂, O(N3logK). 注意到是循环矩阵, 可以把矩阵乘法的复杂度降到O(N2). 所以总复杂度就是O(N2logK) --- ...

  8. BZOJ 1009: [HNOI2008]GT考试( dp + 矩阵快速幂 + kmp )

    写了一个早上...就因为把长度为m的也算进去了... dp(i, j)表示准考证号前i个字符匹配了不吉利数字前j个的方案数. kmp预处理, 然后对于j进行枚举, 对数字0~9也枚举算出f(i, j) ...

  9. BZOJ 2875: [Noi2012]随机数生成器( 矩阵快速幂 )

    矩阵快速幂...+快速乘就OK了 ----------------------------------------------------------------------------------- ...

随机推荐

  1. 安装vim with python

    http://note.youdao.com/noteshare?id=4eaddfef93696451de7ff890a6af3cc4

  2. 我学习的第一个uiautomator从创建到运行结束

    一.新建自动化脚本     1.新建java工程包              [file]----[new]----[Java Project]    新建工程                  [右 ...

  3. 轮廓问题/Outline Problem-->改进的算法及时间复杂度分析

    前面写过一篇关于轮廓算法的文章,是把合并建筑和合并轮廓是分开对待的,并且为了使轮廓合并的时候算法简单,对x坐标使用了double类型,然后对整形的x坐标数据进行合并.这样做是为了使得需找拐点的算法容易 ...

  4. python基础之列表、字典、元祖等 (二)

    一.作用域 if 1==1: name = 'weibinf' print name 下面的结论对吗? 外层变量,可以被内层变量使用 内层变量,无法被外层变量使用 二.三元运算 result = 值1 ...

  5. (转)ios error:unrecognized selector sent to class

    转自:http://blog.itpub.net/12231606/viewspace-1081952/ 今天将app统计的.a静态库包含到一个app应用中,调试时报下面的错误: *** Termin ...

  6. html中<meta>标签

    这个是html文档一般都有的元素. 1. 介绍 元素基本所有浏览器都支持,它提供页面的元信息,比如描述.关键字.web服务等 位于文档头部的内部,将以名称/值对出现 2. 属性 注意:如果没有name ...

  7. JSOI2008 小店购物

    https://www.luogu.org/problem/show?pid=2792 题目背景 JSOI集训队的队员发现,在他们经常活动的集训地,有一个小店因为其丰富的经营优惠方案深受附近居民的青睐 ...

  8. [ERROR] Too many connections 尚未解决

    [ERROR] - com.alibaba.druid.support.logging.Log4j2Impl.error(Log4j2Impl.java:53) - create connection ...

  9. 拦截asp.net输出流做处理

    本文标题是指对已经生成了HTML的页面做一些输出到客户端之前的处理. 方法的原理是:把Response的输出重定向到自定义的容器内,也就是我们的StringBuilder对象里,在HTML所有的向页面 ...

  10. 【BZOJ】1087: [SCOI2005]互不侵犯King

    [算法]状态压缩型DP [题解]http://www.cnblogs.com/xtx1999/p/4620227.html (orz) https://www.cnblogs.com/zbtrs/p/ ...