bzoj1898: [Zjoi2005]Swamp 沼泽鳄鱼
一眼矩乘
把图分成12个,然后直接搞。
#include<cstdio>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<cmath>
using namespace std;
typedef long long LL;
const LL mod=; int n;
struct Matrix
{
LL a[][];
Matrix(){}
void clean()
{
memset(a,,sizeof(a));
}
void beone()
{
clean();
for(int i=;i<=n;i++)a[i][i]=;
}
friend Matrix operator *(Matrix A,Matrix B)
{
Matrix C;C.clean();
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.a[i][k]*B.a[k][j])%mod)%mod;
return C;
}
}G[]; LL mp[][];
int main()
{
freopen("swamp.in","r",stdin);
freopen("swamp.out","w",stdout);
int m,st,ed,x,y;LL K;
scanf("%d%d%d%d%lld",&n,&m,&st,&ed,&K);st++,ed++;
memset(mp,,sizeof(mp));
for(int i=;i<=m;i++)
{
scanf("%d%d",&x,&y);x++,y++;
mp[x][y]=;mp[y][x]=;
}
for(int k=;k<=;k++)
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
G[k].a[i][j]=mp[i][j]; int fish;LL p;
scanf("%d",&fish);
for(int i=;i<=fish;i++)
{
scanf("%lld",&p);
for(int j=;j<=p;j++)
{
scanf("%d",&x);x++;
for(int k=j-;k<=;k+=p)
{
for(int u=;u<=n;u++)G[k].a[u][x]=;
}
}
}
Matrix YZH;YZH.beone();
for(int i=;i<=;i++)
{
YZH=YZH*G[i%];
if(K==i){printf("%lld\n",YZH.a[st][ed]);return ;}
}
p=K/;K%=;
Matrix ans;ans.beone();
while(p!=)
{
if(p%==)ans=ans*YZH;
YZH=YZH*YZH;p/=;
}
for(int i=;i<=K;i++)ans=ans*G[i];
printf("%lld\n",ans.a[st][ed]);
return ;
}
bzoj1898: [Zjoi2005]Swamp 沼泽鳄鱼的更多相关文章
- BZOJ1898: [Zjoi2005]Swamp 沼泽鳄鱼(矩阵乘法)
1898: [Zjoi2005]Swamp 沼泽鳄鱼 题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1898 Description 潘塔 ...
- BZOJ1898 [Zjoi2005]Swamp 沼泽鳄鱼 矩阵
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1898 题意概括 有一个无向图. 其中,有许多条鱼在以循环的规律出现,比如循环在1,2,3这些点出现 ...
- BZOJ1898: [Zjoi2005]Swamp 沼泽鳄鱼(矩阵快速幂)
题意 题目链接 Sol 不难发现吃人鱼的运动每\(12s\)一个周期 所以暴力建12个矩阵,放在一起快速幂即可 最后余下的部分暴力乘 #include<bits/stdc++.h> usi ...
- bzoj1898 [Zjoi2005]Swamp 沼泽鳄鱼——矩阵快速幂
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1898 求到达方案数...还是矩阵快速幂: 能够到达就把邻接矩阵那里赋成1,有鳄鱼的地方从各处 ...
- 【BZOJ1898】[Zjoi2005]Swamp 沼泽鳄鱼 矩阵乘法
[BZOJ1898][Zjoi2005]Swamp 沼泽鳄鱼 Description 潘塔纳尔沼泽地号称世界上最大的一块湿地,它地位于巴西中部马托格罗索州的南部地区.每当雨季来临,这里碧波荡漾.生机盎 ...
- 【BZOJ-1898】Swamp 沼泽鳄鱼 矩阵乘法
1898: [Zjoi2005]Swamp 沼泽鳄鱼 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 1012 Solved: 566[Submit][S ...
- BZOJ 1898: [Zjoi2005]Swamp 沼泽鳄鱼 [矩阵乘法]
1898: [Zjoi2005]Swamp 沼泽鳄鱼 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 1082 Solved: 602[Submit][S ...
- 1898: [Zjoi2005]Swamp 沼泽鳄鱼
1898: [Zjoi2005]Swamp 沼泽鳄鱼 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 1582 Solved: 870 [Submit][S ...
- BZOJ 1898: [Zjoi2005]Swamp 沼泽鳄鱼
1898: [Zjoi2005]Swamp 沼泽鳄鱼 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 1085 Solved: 604[Submit][S ...
随机推荐
- C#入门经典 Chapter5 变量的更多内容
5.1类型转换 1.类型转换 1.1隐式转换:所有情况下可进行,编译器执行转换. 1.2显示转换 强制转换:强迫数据从一种类型转换为另一种类型. (<destinationType>)&l ...
- Angular——tab切换案例
基本介绍 angular框架下的tab切换,相比较于之前的纯js写的代码,有一个很大的特点就是以数据为驱动,基本上不用搜索dom元素就可以实现效果 基本使用 (1)导航部分使用的是的状态使用的是ng- ...
- Ajax——瀑布流
基本概念 1.宽度是一致的,高度上参差不齐 2.新增内容优先放置在最矮的地方 核心难点 1.用一个数组存储每列的高度值 2.新值添加到值最小索引上,每次替换更新数组 插件使用 1.$.fn.exten ...
- servlet-响应信息的content-Type作用
package servlet; import java.io.File; import java.io.FileInputStream; import java.io.IOException; im ...
- [Windows Server 2012] PHPWind安全设置
★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com★[护卫神·V课堂]是护卫神旗下专业提供服务器教学视频的网站,每周更新视频. ★ 本节我们将带领大家:PHPWin ...
- android studio 控件提示大写
方法一: 在第一行找到File进入找到setting,找到code completion 右侧复选框 选择-->None—->ok 方法二:<item name="andr ...
- 移动的 touch事件中的touches、targetTouches和changedTouches
touches: 当前屏幕上所有触摸点的列表; targetTouches: 当前对象上所有触摸点的列表; changedTouches: 涉及当前(引发)事件的触摸点的列表 通过一个例子来区分一下触 ...
- 常见的CPU指令集介绍
本文摘自网络 一.X86 是微处理器执行的计算机语言指令集,指一个intel通用计算机系列的标准编号缩写,也标识一套通用的计算机指令集合,属于CISC. 1.1.简介 X86指令集是美国Intel ...
- Xftp 5 和 Xshell 5 基本使用方法
软件介绍: (1)Xshell: 一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的 TELNET 协议.Xshell通过互联网可以连接到远程的服 ...
- 破解js中的this指向
首先必须要说的是,this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this的最终指向的是那个调用它的对象(这句话有些问题,后面会解释为什么会有问题,虽然 ...