BZOJ 1898: [Zjoi2004]Swamp 沼泽鳄鱼(矩阵乘法)
可以发现,如果没有鳄鱼,那么就是裸地一道题,但是可以发现鳄鱼最多每12次重复,那么就少于12的那部分dp,其他的就矩阵乘法就行了
PS:第一次吧矩阵乘法AC了好开心QAQ
CODE:
#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>#define mod 10000#define maxn 60using namespace std;struct mat{ int n,m,a[maxn][maxn]; mat(){n=m=0;memset(a,0,sizeof(a));} int I(int _x){n=m=_x;for (int i=1;i<=n;i++) a[i][i]=1;}};mat operator *(const mat &x,const mat &y){ mat ans; ans.n=x.n; ans.m=y.m; for (int i=1;i<=ans.n;i++) for (int j=1;j<=ans.m;j++) for (int k=1;k<=x.m;k++){ ans.a[i][j]+=x.a[i][k]*y.a[k][j]; ans.a[i][j]%=mod; } return ans;}mat power(mat x,int y){ mat ans;ans.I(x.n); for (;y;y>>=1){ if (y&1) ans=ans*x; x=x*x; } return ans;}int n,m,s,e,fn,ti;bool b[60][60];int a[20][7],t[60],f[60][60][15];int main(){ scanf("%d%d%d%d%d",&n,&m,&s,&e,&ti); for (int i=1;i<=m;i++) { int x,y; scanf("%d%d\n",&x,&y); x++;y++; b[x][y]=b[y][x]=1; } scanf("%d",&fn); for (int i=1;i<=fn;i++) { scanf("%d",&t[i]); for (int j=1;j<=t[i];j++) {scanf("%d",&a[i][j]);a[i][j]++; } } for (int i=1;i<=n;i++) f[i][i][0]=1; for (int i=1;i<=12;i++) for (int j=1;j<=n;j++) for (int k=1;k<=n;k++){ for (int l=1;l<=n;l++) if (f[j][l][i-1]&&b[l][k]) (f[j][k][i]+=f[j][l][i-1])%=mod; for (int l=1;l<=fn;l++) if (a[l][i%t[l]+1]==k) {f[j][k][i]=0;} } mat x,y; x.n=x.m=y.n=y.m=n; for (int i=1;i<=n;i++) for (int j=1;j<=n;j++) x.a[i][j]=f[i][j][12]; x=power(x,ti/12); for (int i=1;i<=n;i++) for (int j=1;j<=n;j++) y.a[i][j]=f[i][j][ti%12]; x=x*y; printf("%d",x.a[s+1][e+1]); return 0;} |
BZOJ 1898: [Zjoi2004]Swamp 沼泽鳄鱼(矩阵乘法)的更多相关文章
- BZOJ 1898: [Zjoi2005]Swamp 沼泽鳄鱼 [矩阵乘法]
1898: [Zjoi2005]Swamp 沼泽鳄鱼 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 1082 Solved: 602[Submit][S ...
- BZOJ 1898: [Zjoi2004]Swamp 沼泽鳄鱼( dp + 矩阵快速幂 )
----------------------------------------------------------------------- #include<cstdio> #incl ...
- bzoj 1898 [Zjoi2005]Swamp 沼泽鳄鱼——矩阵快速幂
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1898 当然是邻接矩阵做转移矩阵来快速幂. 对于鳄鱼,好在它们周期的lcm是12,也就是每12 ...
- 【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: 1085 Solved: 604[Submit][S ...
- 【BZOJ1898】[Zjoi2005]Swamp 沼泽鳄鱼 矩阵乘法
[BZOJ1898][Zjoi2005]Swamp 沼泽鳄鱼 Description 潘塔纳尔沼泽地号称世界上最大的一块湿地,它地位于巴西中部马托格罗索州的南部地区.每当雨季来临,这里碧波荡漾.生机盎 ...
- bzoj 1898: [Zjoi2005]Swamp 沼泽鳄鱼【dp+矩阵快速幂】
注意到周期234的lcm只有12,也就是以12为周期,可以走的状态是一样的 所以先预处理出这12个状态的转移矩阵,乘起来,然后矩阵快速幂优化转移k/12次,然后剩下的次数暴力转移即可 #include ...
- BZOJ1898: [Zjoi2004]Swamp 沼泽鳄鱼
1898: [Zjoi2004]Swamp 沼泽鳄鱼 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 478 Solved: 286[Submit][St ...
- 1898: [Zjoi2005]Swamp 沼泽鳄鱼
1898: [Zjoi2005]Swamp 沼泽鳄鱼 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 1582 Solved: 870 [Submit][S ...
随机推荐
- IOS开发-UI学习-delegate(代理)的使用,键盘消失
代理是IOS开发中用到的一种设计模式.今天做了一个代理的小练习: 以下项目实现了两个页面之间的相互切换,并且在切换页面的时候完成了从一个页面往另一个页面的传值.从主页面往其他页面传值是容易的,但是反过 ...
- HTML段落自动换行的样式设置
在HTML的P标记中,默认情况下是自动换行的. 如果你的段落是由中文字符或者英文单词组成的,这基本没什么问题.但是如果你的段落是由不间断的英文字母(浏览器会认为是一个单词)组成,则默认情况下不会换行, ...
- _foreach
从JDK1.5之后增加的foreach循环取消索引 for(类型 变量 : 数组 | 集合){ 每一次循环会自动将数组内容设置给变量 } 范例: ,,,} ; for(int x : i){ Syst ...
- CentOS 7 上面安装PowerShell
看了文章 爱上PowerShell , 就想在CentOS 7上面试试PowerShell , 本文记录了在CentOS 7.2上安装Powershell 的过程. 首先我们要从github上下载最新 ...
- wordpress数据表结构
Table: wp_commentmeta Field Type Null Key Default Extra meta_id bigint(20) unsigned PRI NULL auto_in ...
- 如何解决ADT17下Android第三方jar包NoClassDefFoundError的错误
转自:http://blog.csdn.net/huzgd/article/details/7604069本人已试过第二种解决方法可行!! 原文:Posted by Foxykeep on 22/03 ...
- STM8S003/005/007芯片解密单片机解密程序提取复制经验分享!
STM8S003/005/007芯片解密单片机解密程序提取复制 芯片解密型号: STM8S003K3T6,STM8S005K6T6,STM8S007C8T6,STM8S003F3P6 STM8S005 ...
- PAT1013 数素数
思路: 打印素数表 然后找出对应区间[m,n]中的素数 #include <iostream> #include <vector> #include <cmath> ...
- 最多两次股票交易-Best Time to Buy and Sell Stock III
Say you have an array for which the ith element is the price of a given stock on day i. Design an al ...
- Angular - - angular.element
angular.element 将DOM元素或者HTML字符串一包装成一个jQuery元素. 格式:angular.element(element); element:包装成jquery对象的html ...