【阶乘】个人练习-Leetcode-LCP 22. 黑白方格画
题目链接:https://leetcode.cn/problems/ccw6C7/description/
题目大意:给出一块白方格面积为n*n,给出一个数字k,每一次操作可以把方格的某一整行或者某一整列涂黑,求使得黑色格子数字为k的【最终图案】的个数。
思路:虽然是简单题,但还想了一会的。因为【最终图案数】并不是【操作方法数】。比如2*2的格子,【先涂一行再涂一列】和【先涂一列再涂一行】得到的图案是一样的。我们发现涂的行列具体是哪几行哪几列并不影响最终黑格子的数目,因此可以先得出【需要涂黑x行】和【需要涂黑y列】,然后求组合数 C n x C_n^x Cnx和 C n y C_n^y Cny的乘积即可。因为x, y对可能有多个,我们用一个vector<pair<int, int>>来保存。
然而要注意一下一些特殊情况:
k < n:那么就算只涂一行也会超过,不行
k == 0:什么都不用做,返回1
求阶乘的话可以用一个数组来保存结果,避免重复计算。
完整代码
class Solution {
public:vector<int> frac;int getFrac(int x) {if (x == 0)return frac[0] = 1;if (frac[x])return frac[x];elsereturn frac[x] = x*getFrac(x-1);}int paintingPlan(int n, int k) {if (k == 0)return 1;if (n > k)return 0;if (n*n == k)return 1;int ans = 0;vector<pair<int, int>> res;frac.resize(n+1, 0);for (int x = 0; x < n; x++) {for (int y = 0; y < n; y++) {if (x*n+y*(n-x) > k)break;else if (x*n+y*(n-x) == k) {res.emplace_back(make_pair(x, y));}else;}}for (auto p : res) {int x = p.first, y = p.second;ans += (getFrac(n)/getFrac(x)/getFrac(n-x)) * (getFrac(n)/getFrac(y)/getFrac(n-y));}return ans;}
};
相关文章:
【阶乘】个人练习-Leetcode-LCP 22. 黑白方格画
题目链接:https://leetcode.cn/problems/ccw6C7/description/ 题目大意:给出一块白方格面积为n*n,给出一个数字k,每一次操作可以把方格的某一整行或者某一整列涂黑,求使得黑色格子数字为k的【最终图案】的个数。 思路…...
十七、【文本编辑器(三)】图像坐标变换
目录 一、缩放功能 二、旋转功能 三、镜像功能 四、QMatrix简单介绍 一、缩放功能 (1)在头文件中添加 “protected slots:" 变量: void ShowZoomln( ); (2)在 createActionso函数的最后添力口事件关联&…...
生活中生智慧
【 圣人多过 小人无过 】 觉得自己做得不够才能做得更好,互相成全;反求诸己是致良知的第一步;有苦难才能超越自己,开胸怀和智慧;不浪费任何一次困苦,危机中寻找智慧,成长自己。 把困苦当作当下…...
2024第18届中国西部(成都)教育装备展12月14日举办
2025中国国际工业气体设备技术及应用展览会 2025 China International Industrial Gas Equipment Technology and Application Exhibition 时间:2025年3月18-20日 地点:北京全国农业展览馆(新馆) 展览前言 随着需求市场的持续…...
Webpack看这篇就够了
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 非常期待和您一起在这个小…...
基于京东电商蓝牙耳机产品评论数据的情感分析与文本分析
摘要 随着电子商务的迅速发展,了解用户对产品的意见和情感倾向对企业至关重要。本研究旨在利用Python大数据技术对电商产品评论进行情感分析和主题建模,为企业提供有价值的市场洞察。 通过爬虫获取电商评论数据,使用pandas清洗和预处理数据&a…...
【Linux网络】poll{初识poll / poll接口 / poll vs select / poll开发多客户端echo服务器}
文章目录 1.初识pollpoll与select的主要联系与区别poll的原理poll的优点poll的缺点poll vs select 2.poll开发多客户端echo服务器封装套接字接口Makefile主函数日志服务聊天服务器 1.初识poll poll是Linux系统中的一个系统调用,它用于监控多个文件描述符(…...
数据库db文件损坏修复方法(sqlite3:database disk image is malformed)
参考博客: https://www.cnblogs.com/liuyangQAQ/p/18037546 sqlite3数据库提示database disk image is malformed 解决办法-CSDN博客 【SQL】sqlite数据库损坏报错:database disk image is malformed(已解决)-CSDN博客 一、第…...
Prometheus 云原生 - 微服务监控报警系统 (Promethus、Grafana、Node_Exporter)部署、简单使用
目录 开始 Prometheus 介绍 基本原理 组件介绍 下文部署组件的工作方式 Prometheus 生态安装(Mac) 安装 prometheus 安装 grafana 安装 node_exporter Prometheus 生态安装(Docker) 安装 prometheus 安装 Grafana 安装…...
Spring源码注解篇三:深入理解@Component注解
Component及其派生注解的源码 Spring框架作为Java开发中不可或缺的一部分,其依赖注入机制的核心是通过注解来实现的。本文将深入探讨Spring中Component及其派生注解的源码实现,分析Spring如何通过类路径扫描(Classpath Scanning)和…...
SpringBoot中常用的注解及其用法
1. 常用类注解 RestController和Controller是Spring中用于定义控制器的两个类注解. 1.1 RestController RestController是一个组合类注解,是Controller和ResponseBody两个注解的组合,在使 用 RestController 注解标记的类中,每个方法的返回值都会以 JSON 或 XML…...
【大语言模型】私有化搭建-企业知识库-知识问答系统
下面是我关于大语言模型学习的一点记录 目录 人工智能学习路线 MaxKB 系统(基于大语言模型的知识问答系统) 部署开源大语言模型LLM 1.CPU模式(没有好的GPU,算力和效果较差) 2.GPU模式(需要有NVIDIA显卡支持) Ollama网络配置 Ollama前…...
CSS常用的样式
字体和文本样式 font-family: 定义文本字体。 font-size: 设置字体大小。 color: 设置文本颜色。 text-align: 水平对齐文本(左对齐、右对齐、居中、两端对齐)。 line-height: 设置行间距。 text-decoration: 控制文本装饰线(如下划线、…...
结合实体类型信息(2)——基于本体的知识图谱补全深度学习方法
1 引言 1.1 问题 目前KGC和KGE提案的两个主要缺点是:(1)它们没有利用本体信息;(二)对训练时未见的事实和新鲜事物不能预测的。 1.2 解决方案 一种新的知识图嵌入初始化方法。 1.3 结合的信息 知识库中的实体向量表示+编码后的本体信息——>增强 KGC 2基…...
如何在电脑上演示手机上APP,远程排查移动端app问题
0序: 对接客户,给领导演示移动端产品,或者远程帮用户排查移动端产品的问题。都需要让别人能够看到自己在操作手机。 会议室可以使用投屏,但需要切换电脑和手机。 排查问题经常都是截图、或者手机上录制视频,十分繁琐…...
SQL Server 创建用户并授权
创建用户前需要有一个数据库,创建数据库命令如下: CREATE DATABASE [数据库名称]; CREATE DATABASE database1; 一、创建登录用户 方式1:SQL命令 命令格式:CREATE LOGIN [用户名] WITH PASSWORD 密码; 例如,创建…...
网关设备BL122实现Modbus RTU/TCP转Profinet协议
Modbus与Profinet是两种广泛应用于工业自动化领域的通信协议:Modbus因其简单性和兼容性,在许多工业设备中得到广泛应用;而Profinet提供了高速、高精度的通信能力,适合于复杂控制系统和实时应用,但两者之间的差异导致了…...
采购管理软件:改善初创企业的采购流程
说到初创企业,人们往往会联想到一个宽松的工作环境,缺乏严格的流程规范,以及公司收入的迅猛增长。这种快速增长可能会被认为会导致工作流程的无序和缺乏结构,使得员工在决策上具有较大的自由度,例如在采购方面。 在这…...
Python 是一种用途广泛的编程语言,应用于各个领域
1. 网络和互联网开发: Python 拥有丰富的框架和库,使其成为 Web 开发的理想选择。 框架: Django 和 Pyramid 用于构建复杂的 Web 应用。Flask 和 Bottle 则适合轻量级应用和 API。 库: Python 标准库支持处理 HTML、XML、JSON 和电子邮件。此外,还有强大…...
【VUE】9、VUE项目中使用VUEX完成状态管理
Vuex 是一个专为 Vue.js 应用程序设计的状态管理模式,它帮助开发者更有效地管理组件间共享的状态。在 Vue 项目中使用 Vuex,可以解决复杂应用中状态管理的困扰,确保状态变更的可追踪性和一致性。 1、Vuex 核心概念 State(状态&a…...
网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...
Linux链表操作全解析
Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表?1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...
51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...
Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件
今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...
学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...
html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...
佰力博科技与您探讨热释电测量的几种方法
热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...
GO协程(Goroutine)问题总结
在使用Go语言来编写代码时,遇到的一些问题总结一下 [参考文档]:https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现: 今天在看到这个教程的时候,在自己的电…...
