牛客小白月赛7 J 方格填色(矩阵快速幂优化)

该博客主要介绍了如何利用矩阵快速幂优化解决牛客小白月赛7中的J方格填色问题。通过观察数据范围,发现m值相对于n较小且状态仅与前一列相关,因此采用动态规划结合矩阵快速幂的方法进行递推计算,以提高效率。博主提供了问题的原题链接和一篇参考构造思路的文章,并给出了AC代码。
摘要由CSDN通过智能技术生成

原题地址:https://www.nowcoder.com/acm/contest/190/J
参考如何构造:https://blog.csdn.net/Akatsuki__Itachi/article/details/80443939
思路:我们可以观察数据范围发现, n n n m m m的差距特别大.然后 m m m最大只有 5 5 5并且我们经过递推可以发现当前列的状态只与前一列有关,所以这题很显然可以用状压 d p dp dp来写.但是 n n n又特别大,所以可以考虑使用矩阵快速幂来加快递推.

具体方法是先构造出递推的矩阵,然后讨一个矩阵快速幂的板子,最后直接统计个数就行了.

ac代码:

#include <bits/stdc++.h>
#define eps 1e-8
#define INF 0x3f3f3f3f
#define PI acos(-1)
#define lson l,mid,rt<<1
#define rson mid+1,r,(rt<<1)+1
#define CLR(x,y) memset((x),y,sizeof(x))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值