P2579 [ZJOI2005]沼泽鳄鱼

没有食人鱼:直接矩乘优化

有食人鱼:食人鱼周期2、3、4,公倍数12,可以以12为一个周期矩乘,剩下的暴力

注意矩乘不满足乘法交换律,一定要注意乘的顺序

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n,m,S,T,K,d[];
struct mat{
int a[][];
mat(){memset(a,,sizeof(a));}
mat operator * (const mat &G) const{
mat c;
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]*G.a[k][j]%)%;
return c;
}
}s,f[],w;
mat Pow(mat x,int y){
mat re;
for(int i=;i<n;++i) re.a[i][i]=;
for(;y;y>>=,x=x*x) if(y&) re=re*x;
return re;
}
int main(){
scanf("%d%d%d%d%d",&n,&m,&S,&T,&K);
for(int i=,u,v;i<=m;++i){
scanf("%d%d",&u,&v);
s.a[u][v]=s.a[v][u]=;
}
for(int i=;i<;++i) f[i]=s;
scanf("%d",&m);
for(int i=,t;i<=m;++i){
scanf("%d",&t);
for(int u=;u<t;++u) scanf("%d",&d[u]);
for(int j=;j<;++j)
for(int k=;k<n;++k)
f[j].a[k][d[j%t]]=;
}
for(int i=;i<n;++i) w.a[i][i]=;
for(int i=;i<;++i) w=w*f[i];
w=w*f[]; w=Pow(w,K/);
for(int i=;i<=K%;++i) w=w*f[i];
printf("%d",w.a[S][T]);
return ;
}

P2579 [ZJOI2005]沼泽鳄鱼(矩乘)的更多相关文章

  1. P2579 [ZJOI2005]沼泽鳄鱼

    传送门 话说邻接矩阵居然还能快速幂的么-- 把原图的邻接矩阵\(G\)打出来,那么\(G[u][v]\)表示一秒后\(u\)到\(v\)的方案数,\(G^2[u][v]\)表示\(2\)秒后的方案数- ...

  2. P2579 [ZJOI2005]沼泽鳄鱼(邻接矩阵,快速幂)

    题目简洁明了(一点都不好伐) 照例,化简题目 给一张图,每一个时间点有一些点不能走,(有周期性),求从起点第k秒恰好在终点的方案数,可重复,不可停留. 额dp实锤 于是就被打脸了.... 有一种东西叫 ...

  3. 【BZOJ1898】[ZJOI2005]沼泽鳄鱼(矩阵快速幂,动态规划)

    [BZOJ1898][ZJOI2005]沼泽鳄鱼(矩阵快速幂,动态规划) 题面 BZOJ 洛谷 题解 先吐槽,说好了的鳄鱼呢,题面里面全是食人鱼 看到数据范围一眼想到矩乘. 先不考虑食人鱼的问题,直接 ...

  4. 题解-[ZJOI2005]沼泽鳄鱼

    题解-[ZJOI2005]沼泽鳄鱼 前置知识: 邻接矩阵 矩阵乘法 矩阵快速幂 [ZJOI2005]沼泽鳄鱼 给一个有 \(N\) 个点,\(M\) 条双向边的图 \(G\),其中有 \(NFish\ ...

  5. ZJOI2005沼泽鳄鱼

    矩阵优化dp ** 注意:矩阵乘法没有交换律 ** 思路:类比P2151hh去散步 代码特点在一维的答案矩阵 1.矩阵优化两点间方案数不必赘述 2.注意2,3,4可以办到以他们的lcm为周期,正是因为 ...

  6. bzoj1898 [Zjoi2005]沼泽鳄鱼

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

  7. [ZJOI2005]沼泽鳄鱼 矩阵乘法

    ---题面--- 题解: 乍一看还是挺懵逼的.和HH去散步很像,思路也是类似的. 复制一段我在HH去散步的题解里面写的一段话吧: 考虑f[i][j]表示i和j是否右边相连,有为1,否则为0,那么f同时 ...

  8. [ZJOI2005]沼泽鳄鱼

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

  9. [luogu2579 ZJOI2005] 沼泽鳄鱼(矩阵快速幂)

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

随机推荐

  1. JSP学习(5)

    JSP学习(5) 保存用户状态的两大机制 session对象 Cookie Cookie简介 是Web服务器保存在客户端的一系列文本信息 典型应用 判断注册用户是否已经登录 购物车处理 作用 对特定对 ...

  2. FTP服务器原理及配置

    控制连接 21端口  用于发送ftp命令 数据连接 20端口  用于上传下载数据 数据连接的建立类型: 1主动模式: 服务器主动发起的数据连接 首先由客户端的21 端口建立ftp控制连接 当需要传输数 ...

  3. zabbix 4.2 发送警告邮件Python脚本

    #!/usr/bin/env python#-*- coding: UTF-8 -*-import os,sysimport getoptimport smtplibfrom email.MIMETe ...

  4. [Luogu2600]合并神犇(dp,贪心)

    [Luogu2600]合并神犇 题目背景 loidc来到了NOI的赛场上,他在那里看到了好多神犇. 题目描述 神犇们现在正排成一排在刷题.每个神犇都有一个能力值p[i].loidc认为坐在附近的金牌爷 ...

  5. struts2的相关知识(实现原理、拦截器)

    struts2的实现原理 客户端初始化一个指向Servlet容器(例如Tomcat)的请求 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的 ...

  6. hdu 4717: The Moving Points 【三分】

    题目链接 第一次写三分 三分的基本模板 int SanFen(int l,int r) //找凸点 { ) { //mid为中点,midmid为四等分点 ; ; if( f(mid) > f(m ...

  7. 现在的编辑器不能复制粘贴word中的文本

    我司需要做一个需求,就是使用富文本编辑器时,不要以上传附件的形式上传图片,而是以复制粘贴的形式上传图片. 在网上找了一下,有一个插件支持这个功能. WordPaster 安装方式如下: 直接使用Wor ...

  8. js点击获取—通过JS获取图片的相对坐标位置

    一.通过JS获取鼠标点击时图片的相对坐标位置 源代码如下所示: <!DOCTYPE html> <html lang="en"> <head> ...

  9. char* 和 cha[]

    char* s1 = "hello";//字符串常量 s是一个保存了字符串首地址的指针变量,同时也是字符串的名字,s的内容是第一个字符的地址,当s指向常量字符串时候,内容不能改变( ...

  10. wl

    <!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Conten ...