AcWing206 石子游戏 矩阵乘法

这是一篇关于AcWing206题目的解析,主要讨论如何利用矩阵乘法解决石子游戏问题。文章强调了矩阵乘法在处理周期性操作时的重要性,并指出在编程实现中需要注意的几个关键点,包括边界条件、数据类型的选择、输出格式以及矩阵乘法的顺序等。
摘要由CSDN通过智能技术生成

矩阵乘法经典例题。

 

做一个映射  $cal(i,j)=(i-1)*n+j$

把网格看成长度为$n*m$的一维向量,定义一个 $1$ 行 $n*m+1$ 列的状态矩阵 $F$,将其转换成一维数组 。

F_{cal(i,j)} 表示网格的 (i,j)$(i,j)$ 位置石子个数, F_0 初始化1且始终为1,象征着给别的网格分发石子的“上帝”。

操作长度不超过6,1~6的最小公倍数为60,所以每经过60秒,每个网格的操作序列一定处于最开始的字符处。

因此可以把1~60的操作矩阵相乘,再快速幂算它的 $t/60$ 次方,再乘以剩下的1到 $t\mod60$ 秒的操作矩阵,再被初始的状态矩阵 $F$ 乘即

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值