当前位置: 首页 > news >正文

C++ | Leetcode C++题解之第552题学生出勤记录II

题目:

题解:

class Solution {
public:static constexpr int MOD = 1'000'000'007;vector<vector<long>> pow(vector<vector<long>> mat, int n) {vector<vector<long>> ret = {{1, 0, 0, 0, 0, 0}};while (n > 0) {if ((n & 1) == 1) {ret = multiply(ret, mat);}n >>= 1;mat = multiply(mat, mat);}return ret;}vector<vector<long>> multiply(vector<vector<long>> a, vector<vector<long>> b) {int rows = a.size(), columns = b[0].size(), temp = b.size();vector<vector<long>> c(rows, vector<long>(columns));for (int i = 0; i < rows; i++) {for (int j = 0; j < columns; j++) {for (int k = 0; k < temp; k++) {c[i][j] += a[i][k] * b[k][j];c[i][j] %= MOD;}}}return c;}int checkRecord(int n) {vector<vector<long>> mat = {{1, 1, 0, 1, 0, 0}, {1, 0, 1, 1, 0, 0}, {1, 0, 0, 1, 0, 0}, {0, 0, 0, 1, 1, 0}, {0, 0, 0, 1, 0, 1}, {0, 0, 0, 1, 0, 0}};vector<vector<long>> res = pow(mat, n);long sum = accumulate(res[0].begin(), res[0].end(), 0ll);return (int)(sum % MOD);}
};

http://www.mrgr.cn/news/68880.html

相关文章:

  • 基于Python的药房管理系统
  • UE4/5 编译报错 MSB3073
  • 游戏引擎中LOD渲染技术
  • 苍穹外卖项目--编辑修改员工出现问题: 页面可以回显,但无法修改
  • 基于redis实现API接口访问次数限制
  • PHP实现身份证OCR识别API接口
  • AntPathMatcher 技术文档
  • NLP论文速读|Describe-then-Reason: 通过视觉理解训练来提升多模态数学的推理
  • 用 Python搭建一个微型的HTTP服务器用于传输 2024/11/9
  • 985研一学习日记 - 2024.11.8
  • 寡头垄断模型
  • OpenEuler 下 Docker 安装、配置与测试实例
  • 【51蛋骗鸡按键控制流水速度快慢数码管显示;按键切换流水方向3则】2022-3-7
  • isc-dhcp-server
  • 经典双指针--合并升序链表
  • Linux基础
  • 闯关leetcode——3194. Minimum Average of Smallest and Largest Elements
  • c++17文件系统
  • 什么是 eCPRI,它对 5G 和 Open RAN 有何贡献?
  • 计算机毕业设计Python流量检测可视化 DDos攻击流量检测与可视化分析 SDN web渗透测试系统 网络安全 信息安全 大数据毕业设计
  • PyQt入门指南四十六 性能优化策略
  • Day 56 || 99.岛屿数量、100.岛屿的最大面积
  • 【鉴权】深入了解 Cookie:Web 开发中的客户端存储小数据
  • 计算机毕业设计Python+Neo4j中华古诗词可视化 古诗词智能问答系统 古诗词数据分析 古诗词情感分析 PyTorch Tensorflow LSTM
  • RK3568平台开发系列讲解(设备树篇)设备树中CPU描述
  • //二维数组的遍历方式