一眼矩乘

把图分成12个,然后直接搞。

  1. #include<cstdio>
  2. #include<iostream>
  3. #include<cstring>
  4. #include<cstdlib>
  5. #include<algorithm>
  6. #include<cmath>
  7. using namespace std;
  8. typedef long long LL;
  9. const LL mod=;
  10.  
  11. int n;
  12. struct Matrix
  13. {
  14. LL a[][];
  15. Matrix(){}
  16. void clean()
  17. {
  18. memset(a,,sizeof(a));
  19. }
  20. void beone()
  21. {
  22. clean();
  23. for(int i=;i<=n;i++)a[i][i]=;
  24. }
  25. friend Matrix operator *(Matrix A,Matrix B)
  26. {
  27. Matrix C;C.clean();
  28. for(int i=;i<=n;i++)
  29. for(int j=;j<=n;j++)
  30. for(int k=;k<=n;k++)
  31. C.a[i][j]=(C.a[i][j]+(A.a[i][k]*B.a[k][j])%mod)%mod;
  32. return C;
  33. }
  34. }G[];
  35.  
  36. LL mp[][];
  37. int main()
  38. {
  39. freopen("swamp.in","r",stdin);
  40. freopen("swamp.out","w",stdout);
  41. int m,st,ed,x,y;LL K;
  42. scanf("%d%d%d%d%lld",&n,&m,&st,&ed,&K);st++,ed++;
  43. memset(mp,,sizeof(mp));
  44. for(int i=;i<=m;i++)
  45. {
  46. scanf("%d%d",&x,&y);x++,y++;
  47. mp[x][y]=;mp[y][x]=;
  48. }
  49. for(int k=;k<=;k++)
  50. for(int i=;i<=n;i++)
  51. for(int j=;j<=n;j++)
  52. G[k].a[i][j]=mp[i][j];
  53.  
  54. int fish;LL p;
  55. scanf("%d",&fish);
  56. for(int i=;i<=fish;i++)
  57. {
  58. scanf("%lld",&p);
  59. for(int j=;j<=p;j++)
  60. {
  61. scanf("%d",&x);x++;
  62. for(int k=j-;k<=;k+=p)
  63. {
  64. for(int u=;u<=n;u++)G[k].a[u][x]=;
  65. }
  66. }
  67. }
  68. Matrix YZH;YZH.beone();
  69. for(int i=;i<=;i++)
  70. {
  71. YZH=YZH*G[i%];
  72. if(K==i){printf("%lld\n",YZH.a[st][ed]);return ;}
  73. }
  74. p=K/;K%=;
  75. Matrix ans;ans.beone();
  76. while(p!=)
  77. {
  78. if(p%==)ans=ans*YZH;
  79. YZH=YZH*YZH;p/=;
  80. }
  81. for(int i=;i<=K;i++)ans=ans*G[i];
  82. printf("%lld\n",ans.a[st][ed]);
  83. return ;
  84. }

bzoj1898: [Zjoi2005]Swamp 沼泽鳄鱼的更多相关文章

  1. BZOJ1898: [Zjoi2005]Swamp 沼泽鳄鱼(矩阵乘法)

    1898: [Zjoi2005]Swamp 沼泽鳄鱼 题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1898 Description 潘塔 ...

  2. BZOJ1898 [Zjoi2005]Swamp 沼泽鳄鱼 矩阵

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1898 题意概括 有一个无向图. 其中,有许多条鱼在以循环的规律出现,比如循环在1,2,3这些点出现 ...

  3. BZOJ1898: [Zjoi2005]Swamp 沼泽鳄鱼(矩阵快速幂)

    题意 题目链接 Sol 不难发现吃人鱼的运动每\(12s\)一个周期 所以暴力建12个矩阵,放在一起快速幂即可 最后余下的部分暴力乘 #include<bits/stdc++.h> usi ...

  4. bzoj1898 [Zjoi2005]Swamp 沼泽鳄鱼——矩阵快速幂

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1898 求到达方案数...还是矩阵快速幂: 能够到达就把邻接矩阵那里赋成1,有鳄鱼的地方从各处 ...

  5. 【BZOJ1898】[Zjoi2005]Swamp 沼泽鳄鱼 矩阵乘法

    [BZOJ1898][Zjoi2005]Swamp 沼泽鳄鱼 Description 潘塔纳尔沼泽地号称世界上最大的一块湿地,它地位于巴西中部马托格罗索州的南部地区.每当雨季来临,这里碧波荡漾.生机盎 ...

  6. 【BZOJ-1898】Swamp 沼泽鳄鱼 矩阵乘法

    1898: [Zjoi2005]Swamp 沼泽鳄鱼 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1012  Solved: 566[Submit][S ...

  7. BZOJ 1898: [Zjoi2005]Swamp 沼泽鳄鱼 [矩阵乘法]

    1898: [Zjoi2005]Swamp 沼泽鳄鱼 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1082  Solved: 602[Submit][S ...

  8. 1898: [Zjoi2005]Swamp 沼泽鳄鱼

    1898: [Zjoi2005]Swamp 沼泽鳄鱼 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 1582 Solved: 870 [Submit][S ...

  9. BZOJ 1898: [Zjoi2005]Swamp 沼泽鳄鱼

    1898: [Zjoi2005]Swamp 沼泽鳄鱼 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1085  Solved: 604[Submit][S ...

随机推荐

  1. Angular——内置指令

    内置指令 ng-app 指定应用根元素,至少有一个元素指定了此属性. ng-controller 指定控制器 ng-show控制元素是否显示,true显示.false不显示 ng-hide控制元素是否 ...

  2. spring 415

    不支持的媒体类型 spring mvc 使用@requestBody注解json请求时,jQuery有限制,否则会出现 415 错误 1.使用ajax  $.ajax({                ...

  3. Java 基础入门随笔(1) JavaSE版——java语言三种技术架构

    1.java语言的三种技术架构: J2SE(java 2 Platform Standard Edition):标准版,是为开发普通桌面和商务应用程序提供的解决方案.该技术体系是其他两者的基础,可以完 ...

  4. 错误处理:vmware下克隆centos7配置静态ip地址网卡问题

    vmware下克隆centos7,在配置静态ip地址,重启网卡存在问题,还是mac地址问题 ip addr show 查看下mac地址,配置文件修改下,重启网卡正常了

  5. (转)Hibernate框架基础——cascade属性

    http://blog.csdn.net/yerenyuan_pku/article/details/52760010 我们以部门和员工的关系为例讲解一对多关联关系映射时,删除部门时,如果部门有关联的 ...

  6. eclipse常用设置之项目分组查看

    1.打开‘NaviNavigator’ 视图,windows-->show views->NaviNavigator; 2.在NaviNavigator视图下选择select workin ...

  7. vue-cli3 中的环境变量

    官方文档是这样写的: src同名文件夹下的建立 .env.[model] 配置文件  // mode:production development ... 载入的变量会对vue-cli-service ...

  8. awk 新手入门笔记

    转自:http://www.habadog.com/2011/05/22/awk-freshman-handbook/ awk新手入门笔记 @作者 : habadog@邮箱 : habadog1203 ...

  9. [SQL Service]从一张表取值更新另一张表字段

    1. update table_A set  table_A_column = ab.column from table_A aa left join table_B ab on aa.xx = ab ...

  10. [C++] 配平化学方程式算法的封装

    有人已经实现了配平的方法,在此不再重复介绍. https://www.cnblogs.com/Elfish/p/7631603.html 但是,上述的方法所提供的代码还是存在着问题,需要进一步修改. ...