沼泽鳄鱼

ssl 2511

题目大意

给你一个无向图,有一些鳄鱼有周期性地在这个图中走(鳄鱼不用沿着边走,周期为2或3或4),问你从初始点走到最终点走k个单位时间,不在点和边上停下,不在同一时间和鳄鱼在同一点,有多少种走法

输入样例

6 8 1 5 3
0 2
2 1
1 0
0 5
5 1
1 4
4 3
3 5
1
3 0 5 1

输出样例

2

样例解释

时刻 -----------0 1 2 3
食人鱼位置 --0 5 1 0
路线一 --------1 2 0 5
路线二 --------1 4 3 5

数据范围

1⩽N⩽501 \leqslant N \leqslant 501⩽N⩽50
1⩽K⩽2,000,000,0001 \leqslant K \leqslant 2,000,000,0001⩽K⩽2,000,000,000
1⩽NFish⩽201 \leqslant NFish \leqslant 201⩽NFish⩽20

解题思路

可以拿2,3,4的最小公倍数12当成一个单位时间
然后预处理出12个时间的矩阵
然后快矩阵速幂
最后把余数处理一下即可

代码

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define ll long long
#define wyc 10000
using namespace std;
int n, m, t, x, y, st, ed, fn, s[100], v[100][100];
struct matrix
{int n, m, a[60][60];matrix operator *(matrix const &b) const{matrix c;c.n = n;c.m = b.m;for (int i = 0; i < c.n; ++i)for (int j = 0; j < c.m; ++j)c.a[i][j] = 0;for (int i = 0; i < c.n; ++i)for (int k = 0; k < m; ++k)for (int j = 0; j < c.m; ++j)c.a[i][j] = (c.a[i][j] + a[i][k] * b.a[k][j] % wyc) % wyc;return c;}
}A, B, C;
matrix solve(matrix b, int x)//预处理
{matrix a;for (int i = 1; i <= x; ++i){matrix c = b;for (int j = 1; j <= fn; ++j)for (int k = 0; k < n; ++k)c.a[k][v[j][i % s[j]]] = 0;//有鳄鱼的地方直接清空if (i > 1) a = a * c;else a = c;}return a;
}
void Counting(int x)
{while(x){if (x&1) A = A * B;B = B * B;x>>=1;}return;
}
int main()
{scanf("%d%d%d%d%d", &n, &m, &st, &ed, &t);C.n = C.m = A.m = n;A.n = 1;A.a[0][st] = 1;for (int i = 1; i <= m; ++i){scanf("%d%d", &x, &y);C.a[x][y] = 1;C.a[y][x] = 1;}scanf("%d", &fn);for (int i = 1; i <= fn; ++i){scanf("%d", &s[i]);for (int j = 0; j < s[i]; ++j)scanf("%d", &v[i][j]);}B = solve(C, 12);Counting(t / 12);if (t % 12) A = A * solve(C, t % 12);//解决余数printf("%d", A.a[0][ed]);return 0;
}

【矩阵乘法】沼泽鳄鱼(ssl 2511)相关推荐

  1. 沼泽鳄鱼_SSL2511_矩阵乘法

    沼泽鳄鱼 [题目描述] 潘塔纳尔沼泽地号称世界上最大的一块湿地,它地位于巴西中部马托格罗索州的南部地区.每当雨季来临,这里碧波荡漾.生机盎然,引来不少游客. 为了让游玩更有情趣,人们在池塘的中央建设了 ...

  2. 【矩阵乘法】递推(ssl 1532)

    递推 ssl 1532 题目大意 给出数列a0,a1-ana_0,a_1-a_na0​,a1​-an​和fff的前n−1n-1n−1项f0,f1-fn−1f_0,f_1-f_{n-1}f0​,f1​- ...

  3. 【矩阵乘法】沼泽鳄鱼

    小目录 链接 题目描述 样例输入 样例输出 思路 代码 链接 SSL 2511 题目描述 一个池塘,一些鳄鱼,鳄鱼有周期(2≤周期≤42\leq周期\leq42≤周期≤4)的运动路线,你要从某个点恰好 ...

  4. P2579,jzoj2288-[ZJOI2005]沼泽鳄鱼【矩阵乘法】

    正题 题目链接:https://www.luogu.org/problemnew/show/P2579 题目大意 一张无向图,一个起点一个终点. 有食人鱼,在若干个点之间有周期的移动,周期为222或3 ...

  5. c语言定义int 输出4386,C语言 · 矩阵乘法

    问题描述 输入两个矩阵,分别是m*s,s*n大小.输出两个矩阵相乘的结果. 输入格式 第一行,空格隔开的三个正整数m,s,n(均不超过200). 接下来m行,每行s个空格隔开的整数,表示矩阵A(i,j ...

  6. 矩阵乘法 x 图的邻接矩阵

    邻接矩阵是一种用矩阵形式表示图的方法 那么如果用图的邻接矩阵作矩阵乘法 会有什么神奇的性质呢 我们假设一个N个结点的无向图 我们用G[u][v]=G[v][u]=1G[u][v]=G[v][u]=1G ...

  7. 如何在CPU上优化GEMM矩阵乘法

    如何在CPU上优化GEMM矩阵乘法 How to optimize GEMM on CPU (TL;DR) TVM 提供抽象接口,允许用户分别描述算法和算法的实现组织(所谓的调度).通常,在高性能调度 ...

  8. CPU的自动调度矩阵乘法

    CPU的自动调度矩阵乘法 这是一个有关如何对CPU使用自动调度程序的文档. 与依靠手动模板定义搜索空间的基于模板的autotvm不同,自动调度程序不需要任何模板.用户只需要编写计算声明,而无需任何调度 ...

  9. 十个利用矩阵乘法解决的经典题目

    出自matrix67.com 好像目前还没有这方面题目的总结.这几天连续看到四个问这类题目的人,今天在这里简单写一下.这里我们不介绍其它有关矩阵的知识,只介绍矩阵乘法和相关性质.     不要以为数学 ...

最新文章

  1. @apioperation 作用_石莲子的功效与作用分享
  2. 根据ip获取地理位置
  3. 手撕 MySQL 事务,发生了什么?
  4. PowerDesigner教程系列(二)概念数据模型
  5. micropython logging文档
  6. 无法启动IE调试vs2008的一个解决办法
  7. C#固高运动控制卡PT模式使用
  8. PADS2007_教程之PADS LAYOUT
  9. FeedDemon不能同步google reader的问题
  10. 公众号网页授权php,微信公众号里的PHP网站进行网页授权
  11. BUUCTF--[0CTF 2016]piapiapia
  12. Pygame实战:我妈50岁,戒不掉消消乐!看我给您安排一款百变款消消乐!厉害!
  13. Scrapy抓取新浪微博
  14. 网络七层协议OSI(Open System Interconnection)
  15. 操作系统--Linux操作系统第一期
  16. 实地地产借助联想企业网盘构建信息化,重塑地产行业新未来
  17. 网络信息安全攻防学习平台(基础关)
  18. 四个技巧提升你的网站百度收录量
  19. 玩转Nginx服务器,怎能不懂Nginx的配置和优化?
  20. 百度导航SDK APP Mcode码校验失败解决方案

热门文章

  1. 超时锁定计算机,就会发现多了一个控制台锁定显示关闭超时选项
  2. 计算机专业的吸引力,计算机专业文献翻译-面向对象编程具有多方面的吸引力.doc...
  3. 算法题目——生成括号匹配
  4. 数据结构——基于字符串模式匹配算法的病毒感染检测
  5. leetcode509. 斐波那契数
  6. mysql下载了解压版怎么_教你安装Mysql(解压版/非安装包)图文教程
  7. [mybatis]逆向工程MGB基本编写
  8. [C++11]独占的智能指针unique_ptr的删除器
  9. fastreport字体自适应_FastReport 自动换行与行高自适应及自动增加空行
  10. dedemodule.class.php,DEDECMS5.7模块/模块管理列表显示空白问题解决方法