好矩阵
我们定义一个矩阵为“好矩阵”,当且仅当该矩阵所有2*2的子矩阵数字和为偶数。
例如:
是好矩阵,两个2*2的子矩阵的和分别是8和12。
请问n行m列,矩阵中每个数均在[1,x][1,x]范围内的好矩阵有多少种?由于答案过大,请对109+7取模。
数据范围:2≤n,m,x≤109
保证x为偶数。
输入例子:
2,2,2
输出例子:
8
例子说明:
合法的8个矩阵为:
知识点:组合数学
我们可以先确定第一行和第一列,每个格子上有种不同的取法,共有个格子。因此这些格子的取法总数为。
当第一行和第一***定了以后,其余的格子的奇偶性也就确定下来了。无论是奇数还是偶数,每个格子的取法都是种,因此取法为
把这两个答案乘起来就是最终的答案。
我肯定是想不到了,他们是什么脑子想到的
class Solution { public: int mod = 1e9 + 7; /* * 封装的快速幂 */ int power(int a, long long b) { int res = 1; while (b) { if (b & 1)res = 1LL * res * a % mod; b >>= 1; a = 1LL * a * a % mod; } return res; } int numsOfGoodMatrix(int n, int m, int x) { return 1LL * power(x, n + m - 1) * power(x / 2, 1LL * (n - 1) * (m - 1)) % mod; } };
本文作者:YaosGHC
本文链接:https://www.cnblogs.com/yaocy/p/17000831.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步