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

题目:

题解:

const int MOD = 1000000007;struct Matrix {long mat[6][6];int row, col;
};struct Matrix multiply(struct Matrix a, struct Matrix b) {int rows = a.row, columns = b.col, temp = b.row;struct Matrix c;memset(c.mat, 0, sizeof(c.mat));c.row = rows, c.col = columns;for (int i = 0; i < rows; i++) {for (int j = 0; j < columns; j++) {for (int k = 0; k < temp; k++) {c.mat[i][j] += a.mat[i][k] * b.mat[k][j];c.mat[i][j] %= MOD;}}}return c;
}struct Matrix matricPow(struct Matrix mat, int n) {struct Matrix ret = {{{1, 0, 0, 0, 0, 0}}, 1, 6};while (n > 0) {if ((n & 1) == 1) {ret = multiply(ret, mat);}n >>= 1;mat = multiply(mat, mat);}return ret;
}int checkRecord(int n) {struct Matrix 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}}, 6, 6};struct Matrix res = matricPow(mat, n);long sum = 0;for (int i = 0; i < res.col; i++) {sum += res.mat[0][i];}return (int)(sum % MOD);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/60427.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

本地编译ChatNio的问题解决

编译安装 部署成功后, 默认端口为 8094, 访问地址为 http://localhost:8094 Config 配置项 (~/config/config.yaml) 可以使用环境变量进行覆盖, 如 MYSQL_HOST 环境变量可覆盖 mysql.host 配置项 git clone https://github.com/Deeptrain-Community/chatnio.git cd chatniocd a…

【Linux系统编程】第四十六弹---线程同步与生产消费模型深度解析

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、Linux线程同步 1.1、同步概念与竞态条件 1.2、条件变量 1.2.1、认识条件变量接口 1.2.2、举例子认识条件变量 1.2.3、…

智能算法在金融分析中的应用:民锋科技的前沿探索

随着数据技术的发展&#xff0c;智能算法在金融市场中的应用逐渐增多&#xff0c;从模式识别到投资策略优化&#xff0c;智能算法正帮助金融从业者更高效地处理数据和做出决策。民锋科技积极探索智能算法的应用&#xff0c;通过技术创新为客户提供更精准的市场洞察和交易策略支…

IC 脚本之VIM 记录

1. 对于代码中空格与tab相互转换的可通过如下实现&#xff1a; set tabstop 4 set expandtab %retab ! 以上三行命令即可实现将代码中每四个空格用一个tab来缩进。set tabstop 4 set noexpandtab %retab ! 以上三行命令即可实现将代码中的每个tab用四个空格来实现t…

ML 系列:第 21 节 — 离散概率分布(二项分布)

一、说明 二项分布描述了在固定数量的独立伯努利试验中一定数量的成功的概率&#xff0c;其中每个试验只有两种可能的结果&#xff08;通常标记为成功和失败&#xff09;。 二、探讨伯努利模型 例如&#xff0c;假设您正在抛一枚公平的硬币 &#xff08;其中正面成功&#xff…

JS如何获取MQTT的主题

在JavaScript中&#xff0c;要获取MQTT发布的主题&#xff0c;你通常需要使用一个MQTT客户端库来连接到MQTT代理&#xff08;broker&#xff09;&#xff0c;并订阅你感兴趣的主题。当消息到达时&#xff0c;客户端会触发一个回调函数&#xff0c;该函数将包含消息的主题和消息…

godot--自定义边框/选中时样式 StyleBoxTexture

前提知识&#xff1a; stylebox就像一个贴图&#xff0c;把图案贴到控件是。多个stylebox同时生效的话&#xff0c;那当然也有层级之分&#xff0c;上层覆盖下层&#xff08;可以设置透明度来显示下层&#xff09; 关于主题的概念&#xff1a; godot——主题、Theme、StyleB…

PCB+SMT线上报价系统+PCB生产ERP系统自动化拼板模块升级

PCB生产ERP系统的智能拼版技术&#xff0c;是基于PCB前端报价系统获取到的用户或市场人员已录入系统的板子尺寸及set参数等&#xff0c;按照最优原则或利用率最大化原则自动进行计算并输出拼版样式图和板材利用率&#xff0c;提高工程人员效率&#xff0c;减少板材的浪费。覆铜…

去中心化联邦学习与TinyML联合调查:群学习简介

中英文论文标题&#xff1a; 英文标题&#xff1a;A Joint Survey in Decentralized Federated Learning and TinyML: A Brief Introduction to Swarm Learning中文标题&#xff1a;去中心化联邦学习与TinyML联合调查&#xff1a;群学习简介 作者信息&#xff1a; Evangelia…

使用Python实现定期从API获取数据并存储到数据库的完整指南

使用Python实现定期从API获取数据并存储到数据库的完整指南 引言 在现代数据驱动的应用程序中,定期从外部API获取数据并存储到本地数据库是一项常见的需求。本文将详细介绍如何使用Python编写一个程序,定期从API获取数据并将其存储到SQLite数据库中。通过这一流程,您将掌握…

亚马逊正准备推出其最新的人工智能芯片

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

【学习笔记】数据结构(七)

图 文章目录 图7.1 图的定义和术语7.2 图的存储结构7.2.1 数组表示法 - 邻接矩阵&#xff08;Adjacency Matrix)7.2.2 邻接表 -&#xff08;链式&#xff09;表示法(Adjacency List&#xff09;7.2.3 十字链表(Orthogonal List)7.2.4 邻接多重表(Adjacent MultiList) 7.3 图的遍…

[编译报错]ImportError: No module named _sqlite3解决办法

1. 问题描述&#xff1a; 在使用python进行代码编译时&#xff0c;提示下面报错&#xff1a; "/home/bspuser/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py", line 18, in <module>import sqlite3File "/usr/local/lib/python2.7/sqlite3/_…

社会信用示范城市信用代码和虚拟变量(1990-2022年)原始数据、计算代码、参考文献和最终计算结果

社会信用示范城市信用代码和虚拟变量可以提供一个以观察和分析城市信用状况的演变。 可以构建一个多维度的城市信用评估模型。这个模型不仅能够反映城市信用状况的历史演变&#xff0c;还能预测未来趋势&#xff0c;为政策制定提供科学依据。 1990-2022年社会信用示范城市信用…

【OH】openHarmony开发环境搭建(基于windows子系统WSL)

前言 本文主要介绍基于windows子系统WSL搭建openHarmony开发环境。 WSL与Vmware虚拟机的区别&#xff0c;可以查看WSL与虚拟机的区别 更详细的安装配置过程可参考微软官网&#xff1a; ​安装 WSL 前提 以下基于windows 111专业版进行配置&#xff0c;windows 10应该也是可以…

机器学习: LightGBM模型(优化版)——高效且强大的树形模型

LightGBM&#xff08;Light Gradient Boosting Machine&#xff09;是一种基于梯度提升决策树&#xff08;GBDT&#xff09;的框架&#xff0c;由微软提出。它具有高效的训练速度、低内存占用、支持并行和GPU加速等特点&#xff0c;非常适合大规模数据的训练任务&#xff0c;尤…

Spring框架之责任链模式 (Chain of Responsibility Pattern)

责任链模式&#xff08;Chain of Responsibility Pattern&#xff09;详解 责任链模式&#xff08;Chain of Responsibility Pattern&#xff09;是一种行为型设计模式&#xff0c;旨在将请求的发送者和处理者解耦。它通过创建一条 处理请求的责任链&#xff0c;使得多个对象都…

游戏引擎学习第八天

视频参考: https://www.bilibili.com/video/BV1ouUPYAErK/ 理解下面的代码 关于虚函数 代码分解 结构体 foo 的定义&#xff1a; struct foo {int32 X;int64 Y;virtual void Bar(int c); };foo 结构体有两个成员变量&#xff1a;X&#xff08;int32 类型&#xff09;和 Y&…

工业通信协议对比:OPC-UA、Modbus、MQTT、HTTP

综合对比表 对比项OPC-UAModbusMQTTHTTP通信效率低&#xff0c;带宽消耗高高高&#xff0c;开销低&#xff0c;效率高低&#xff0c;带宽消耗大实时性一般&#xff0c;延迟较高高&#xff0c;延迟低高&#xff0c;低延迟低&#xff0c;延迟高性能消耗高&#xff0c;需要高性能…

Xcode 16 使用 pod 命令报错解决方案

原文请点击这个跳转 一、问题现象&#xff1a; 有人会遇到 Xcode 升级到 16 后&#xff0c;新建应用然后使用 pod init 命令会报错如下&#xff1a; Stack Ruby : ruby 3.3.5 (2024-09-03 revision ef084cc8f4) [x86_64-darwin23]RubyGems : 3.5.22Host : macOS 15.0 (24A335…