题目传送门

解法:
这种题都是矩阵乘法吧。
f[i][t]表示第t秒在i的方案。
那么f[i][t]可以转移f[i][t+1]和能够与i相连的边。

那么这个转移可以看作一个转移矩阵。
首先矩阵的(i,i)都为1表示每一秒都可以停留在原地。
如果x和y有边那么(x,y)和(y,x)都为1因为是双向边。

然后每乘一次都要记录答案。
因为每种方案都可以自爆。
所以矩阵多一个元素记录答案。
每次答案累加。

代码实现:

#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<iostream>
#include<algorithm>
#include<queue>
#include<cmath>
using namespace std;
const int mod=2017;
struct node {int a[41][41];node() {memset(a,0,sizeof(a));}}per;
node jc(node a,node b,int n,int m,int p) {node c;for(int i=1;i<=n;i++)for(int j=1;j<=p;j++)for(int k=1;k<=m;k++) c.a[i][j]=(c.a[i][j]+a.a[i][k]*b.a[k][j])%mod;return c;
}
int n;
node pow_mod(node a,int b) {node ans=per;while(b!=0) {if(b%2==1)ans=jc(ans,a,n,n,n);a=jc(a,a,n,n,n);b/=2;}return ans;
}
int main() {int m,t;scanf("%d%d",&n,&m);node A;for(int i=1;i<=m;i++) {int x,y;scanf("%d%d",&x,&y);A.a[x][y]=1;A.a[y][x]=1;}for(int i=1;i<=n;i++)A.a[i][i]=1;n++;for(int i=1;i<=n;i++)A.a[i][n]=1;node s;s.a[1][1]=1;for(int i=1;i<=n;i++)per.a[i][i]=1;scanf("%d",&t);s=jc(s,pow_mod(A,t+1),1,n,n);printf("%d\n",s.a[1][n]);return 0;
}

bzoj4887: [Tjoi2017]可乐(矩阵乘法+快速幂)相关推荐

  1. BZOJ4887:[TJOI2017]可乐(矩阵乘法)

    Description 加里敦星球的人们特别喜欢喝可乐.因而,他们的敌对星球研发出了一个可乐机器人,并且 放在了加里敦星球的1号城市上.这个可乐机器人有三种行为:停在原地,去下一个相邻的 城市,自爆. ...

  2. 求解斐波那契第n项的几种解法(含矩阵乘法+快速幂) Python实现

    斐波那契数列 首先我们来定义一下斐波那契数列: f(n)={0n = 01n = 1f(n−1)+f(n−2)n > 1f(n)= \begin{cases} 0 & \text {n ...

  3. 洛谷P3758/BZOJ4887 [TJOI2017] 可乐 [矩阵快速幂]

    洛谷传送门,BZOJ传送门 可乐 Time Limit: 10 Sec  Memory Limit: 64 MB Submit: 299  Solved: 207 Description 加里敦星球的 ...

  4. 【bzoj4887】[Tjoi2017]可乐 矩阵乘法

    题目描述 加里敦星球的人们特别喜欢喝可乐.因而,他们的敌对星球研发出了一个可乐机器人,并且放在了加里敦星球的1号城市上.这个可乐机器人有三种行为:停在原地,去下一个相邻的 城市,自爆.它每一秒都会随机 ...

  5. [矩阵乘法/快速幂专题]Arc of Dream,Recursive sequence,233 Matrix,Training little cats

    矩阵快速幂习题 复习矩阵乘法及快速幂模板 乘法模板 快速幂模板 T1:Arc of Dream 题目 题解 code T2:Recursive sequence 题目 题解 code T3:233 M ...

  6. ZCMU-1618-骨牌覆盖(矩阵乘法+快速幂)

    1618: 骨牌覆盖1 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 264  Solved: 124 [Submit][Status][Web Bo ...

  7. Xn数列(矩阵乘法+快速幂+慢速乘法)

    Xn数列 题目描述: 给你6个数,m, a, c, x0, n, g Xn+1 = ( aXn + c ) mod m,求Xn m, a, c, x0, n, g<=10^18 输入描述: 一行 ...

  8. 【BZOJ 2323】 2323: [ZJOI2011]细胞 (DP+矩阵乘法+快速幂*)

    2323: [ZJOI2011]细胞 Description 2222年,人类在银河系外的某颗星球上发现了生命,并且携带了一个细胞回到了地球.经过反复研究,人类已经完全掌握了这类细胞的发展规律: 这种 ...

  9. Luogu P3597 [POI2015]WYC___矩阵乘法快速幂+倍增

    题目大意: 给定一张n个点m条边的带权有向图,每条边的边权只可能是1,2,3中的一种.将所有可能的路径按路径长度排序,请输出第k小的路径的长度,注意路径不一定是简单路径,即可以重复走同一个点. 无自环 ...

最新文章

  1. 如何系统性掌握深度学习中的数据使用
  2. 59 javabean的创建
  3. 执行-技术人的管理之路--总结
  4. GNU make manual 翻译(三十一)
  5. 局域网内通过代理服务器上网的详细设置
  6. HeidiSQL- csv 表格导入数据到 DB表
  7. python redis.exceptions.ConnectionError
  8. ros之tf简介[tf-Package Summary]
  9. F12修改服务器数据,网页f12查看服务器
  10. 物理机下安装 VMware ESXi 6.7
  11. fluent对旋转物体的仿真(moving mesh)
  12. 搜狗号正式上线广告收益功能!
  13. 用 Python 分析资产收益的典型化事实
  14. 2021年安全员-B证试题及解析及安全员-B证证考试
  15. FileWriter和FileReader的基本使用
  16. 关于aPaaS平台的那些事儿
  17. visual studio 2015 下载
  18. SDS之Object Storage: 对象存储,老树开新花
  19. Discuz!开发之判断蜘蛛(机器人)访问函数checkrobot()介绍
  20. 2021_GDUT_Dynamic Programming

热门文章

  1. Next.js国际化配置
  2. html 移动端缩小显示图片,Vue移动端可放大缩小图片vue-photo-preview
  3. python运行异常UserWarning:Could not import the lzma module .Your installed Python is incomplet
  4. 在程序大奖赛中,有10个评委为参赛的选手打分,分数为1~100分。选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。
  5. 3016 质子撞击炮 II
  6. Faster BiSeNet:A Faster Bilateral SegmentationNetwork for Real-time Semantic Segmentation
  7. PCI、PCIE、NVME;ATA、SATA、AHCI及M.2接口简单辨别
  8. C#.NET 国密SM4加密解密 CBC ECB 2种模式
  9. android刷机恢复出厂设置吗,安卓手机恢复出厂设置和双清有什么区别?
  10. es中的ClusterStateApplier和ClusterStateListener