/**
* LCP 22. 黑白方格画
* @author wsq
* @date 2020/10/18
小扣注意到秋日市集上有一个创作黑白方格画的摊位。摊主给每个顾客提供一个固定在墙上的白色画板,画板不能转动。画板上有 n * n 的网格。绘画规则为,小扣可以选择任意多行以及任意多列的格子涂成黑色,所选行数、列数均可为 0。
小扣希望最终的成品上需要有 k 个黑色格子,请返回小扣共有多少种涂色方案。
注意:两个方案中任意一个相同位置的格子颜色不同,就视为不同的方案。
示例 1:
输入:n = 2, k = 2
输出:4
解释:一共有四种不同的方案:
第一种方案:涂第一列;
第二种方案:涂第二列;
第三种方案:涂第一行;
第四种方案:涂第二行。
链接:https://leetcode-cn.com/problems/ccw6C7
*/
package com.wsq.leetcode;
public class PaintingPlan {
/**
* 1.从选择多少条行和多少条列出发,寻找满足条件的行数和列数
* 2.计算出满足条件的(行,列)组合有多少种情况
* @param n
* @param k
* @return
*/
public int paintingPlan(int n, int k) {
if(n*n == k || k == 0){
return 1;
}
if(k < n){
return 0;
}
int ans = 0;
for(int i = 0; i <= n; i++){
for(int j = 0; j <= n; j++){
if(n*(i + j) - (j * i) == k){
ans += get(n, i) * get(n, j);
}
}
}
return ans;
}
private int get(int n, int a){
int res = 1;
for(int i = n; i > n-a; i--){
res *= i;
}
for(int i = 1; i <= a; i++){
res /= i;
}
return res;
}
}
相关推荐
使用网分对晶体ESR/L1/C1/C0进行测量计算
Use R&S Vector Network Analyzer test XTAL ESR/L1/C1/C0 測量方法:使用儀器的Port1端口,測量XTAL的S11,通過諧振的參數計算出ESR/L1/C1/C0的值。 實際晶體的等效模型:通常方便晶體分析,使用下圖(b)的等效模型,但實際測量發現晶體存在多個串聯諧振點,實際等效模型更接近(c)。 儀器測量到的S11,其中M...
LCP 22.黑白方格画
LCP 22.黑白方格画
嵌入式系统中的轻量级压缩实践——miniLZO在STM32上的性能优化
本文深入探讨了miniLZO轻量级压缩算法在STM32嵌入式系统中的性能优化实践。通过对比无损压缩算法的性能特点,详细解析了miniLZO在内存占用、压缩速度方面的优势,并提供了STM32移植、参数调优及创新应用案例,帮助开发者在资源受限环境中实现高效数据压缩。
力扣-LCP22.黑白方格画
题目 小扣注意到秋日市集上有一个创作黑白方格画的摊位。摊主给每个顾客提供一个固定在墙上的白色画板,画板不能转动。画板上有 n * n 的网格。绘画规则为,小扣可以选择任意多行以及任意多列的格子涂成黑色,所选行数、列数均可为 0。 小扣希望最终的成品上需要有 k 个黑色格子,请返回小扣共有多少种涂色方案。 注意:两个方案中任意一个相同位置的格子颜色不同,就视为不同的方案。 示例 1: 输入:n = 2, k = 2 输出:4 解释:一共有四种不同的方案: 第一种方案:涂第一列; 第二种方案:涂第二列; 第三种
实战复盘:如何用ATE(自动测试设备)搞定一颗MCU的功能测试全流程
本文详细解析了如何利用ATE(自动测试设备)完成MCU功能测试的全流程,涵盖测试需求分析、测试向量生成、ATE测试程序开发及调试实战。通过真实案例分享,帮助工程师高效解决芯片测试中的常见问题,提升Functional Test的准确性和效率。
RAGFlow 系列教程 第三课:后端服务入口与请求生命周期
本文深入解析RAGFlow v0.25.0后端核心机制,重点介绍了Quart框架选型原因和服务启动流程。RAGFlow选择Quart作为Web框架,主要基于其异步能力对LLM调用的支持、Flask生态兼容性以及长响应超时处理优势。文章详细拆解了服务启动的8个关键步骤,从日志初始化到HTTP服务启动,并分析了配置加载、数据库初始化等核心环节。通过源码分析揭示了RAGFlow如何实现动态API注册、双重认证体系等关键技术点,为深入理解该系统的请求处理生命周期提供了基础。
LeetCode LCP 22. 黑白方格画
文章目录1. 题目2. 解题 1. 题目 小扣注意到秋日市集上有一个创作黑白方格画的摊位。 摊主给每个顾客提供一个固定在墙上的白色画板,画板不能转动。 画板上有 n * n 的网格。绘画规则为,小扣可以选择任意多行以及任意多列的格子涂成黑色,所选行数、列数均可为 0。 小扣希望最终的成品上需要有 k 个黑色格子,请返回小扣共有多少种涂色方案。 注意:两个方案中任意一个相同位置的格子颜色不同,就视为不同的方案。 示例 1: 输入:n = 2, k = 2 输出:4 解释:一共有四种不同的方案: 第一种方案:涂
这20个网络工程项目经验,帮我跳槽加薪不止一次
嘿,大家好,我是圈圈,一个在网络工程圈子里混了十多年的老鸟。从国企的网管起步,到现在给大厂做顾问,我见过太多简历:有的光鲜亮丽,证书一堆,但一聊项目,就露怯;有的简历朴实,但列出的项目经验让人眼前一亮,直接拿offer。为什么?因为招聘官最看重实战。理论谁都会背,项目经验才是你的“硬通货”。尤其在网络工程这行,项目不光证明你的技能,还展示你解决问题的能力。今天,我就分享20个我亲身经历或见过的网络工程项目经验。每个都值得写进简历,不是吹牛,这些项目帮我跳槽加薪不止一次。
LeetCode——LCP 22. 黑白方格画(排列组合,数学)
题目描述: 解题思路: 比赛的时候,知道了思路,就是找到需要i行j列,然后算出C(n,i)和C(n,j),将这两个相乘即可,但是问题是无法确定给的k是否满足要求,所以排列组合求出的值也可能是错误的。 题目说要么全图一行要么全图一列,这里的公式(i+j)n-ij就是只涂行和列的个数,所以两层for循环,枚举行和列,当等于k的时候算出行列排列组合相乘。因为行和列是不同的情况,所以还要自身相加。 排列组合参考代码: //C(m,n) private static int Combination
添加USB wifi驱动到RK3568
在日常开发中我们经常需要用到wifi功能,一般来说soc厂家都会事先做好了几个厂家的wifi驱动在内核源码目录下,我们只需要按原理图配置对应的设备树即可。常用的wifi的接口有:USBSDIOPCIE下面来介绍这这种接口是如何使用wifi芯片。提示:以下是本篇文章正文内容,下面案例可供参考本小节介绍了一个配置一个USBwifi驱动的整个流程,并没有介绍到SDIO,下小节基于AP6256介绍如何使用。
STM32 stack_size和heap_size大小设置的意义
在使用STM32编程时,一般情况下我们不会关注堆栈空间的大小,因为在STM32的启动文件中,已经帮我们预先设置好了堆栈空间的大小。如下图所示的启动代码中,Stack栈的大小为:0x400(1024Byte),Heap堆的大小为:0x200(512Byte)。 1、若工程中使用的局部变量较多,定义的数据长度较大时,若不调整栈的空间大小,则会导致程序出现栈溢出,程序运行结果与预期的不符或程序跑飞。这时我们就需要手动的调整栈的大小。 2、当工程中使用了malloc动态分配内存空间时,这时分配.......
LCP22.黑白方格画【排列组合】
关于if(k==i*n+j*n-i*j) re+=C(n,i)*C(n,j); 在n行中选i个,在n列中选j个 class Solution { public: int paintingPlan(int n, int k) { if(k==n*n||k==0) return 1; if(k<n) return 0; int i,j,re=0; for(i=0;i<n;+...
基于STM32、HAL库的ADE7880ACPZ-RL电能计量芯片驱动程序设计
@retval 状态 (ADE7880_OK或ADE7880_ERROR)* @retval 状态 (ADE7880_OK或ADE7880_ERROR)* @retval 状态 (ADE7880_OK或ADE7880_ERROR)* @retval 状态 (ADE7880_OK或ADE7880_ERROR)* @retval 状态 (ADE7880_OK或ADE7880_ERROR)PA6 (MISO) <--> SDO (SPI数据输出)PB0 (CS) <--> /CS (片选,低有效)
Leetcode:LCP22 黑白方格画 解题请教
Leetcode:LCP22 黑白方格画 解题请教 输入3,8 错误输出 1 正确输出 9 看了代码觉得没有问题,为什么会出错? class Solution { public: int paintingPlan(int n, int k) { int num=0; if(n * n == k) return 1; if(n * n == 0) return 0; for(int i=0;i<=n;i++){
SAP B1中文培訓教材_SDK
公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说
Statistics and Machine Learning Toolbox
Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具
LeetCode LCP 22. 黑白方格画(二机制位运算、数学、枚举)
【代码】LeetCode LCP 22. 黑白方格画(二机制位运算、数学、枚举)
文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况
主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。
LCP 22. 黑白方格画(排列组合)
黑白方格画 题目:小扣注意到秋日市集上有一个创作黑白方格画的摊位。摊主给每个顾客提供一个固定在墙上的白色画板,画板不能转动。画板上有 n * n 的网格。绘画规则为,小扣可以选择任意多行以及任意多列的格子涂成黑色,所选行数、列数均可为 0。 小扣希望最终的成品上需要有 k 个黑色格子,请返回小扣共有多少种涂色方案。 注意:两个方案中任意一个相同位置的格子颜色不同,就视为不同的方案。 示例 1: 输入:n = 2, k = 2 输出:4 解释:一共有四种不同的方案: 第一种方案:涂第一列; 第二种方案:涂
RU DOS版、EFI版32bit/64bit BIOS常用工具
DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。
LCP 22. 黑白方格画 (JavaScript,数学组合解法)
LCP 22. 黑白方格画 小扣注意到秋日市集上有一个创作黑白方格画的摊位。摊主给每个顾客提供一个固定在墙上的白色画板,画板不能转动。画板上有 n * n 的网格。绘画规则为,小扣可以选择任意多行以及任意多列的格子涂成黑色,所选行数、列数均可为 0。 小扣希望最终的成品上需要有 k 个黑色格子,请返回小扣共有多少种涂色方案。 注意:两个方案中任意一个相同位置的格子颜色不同,就视为不同的方案。 示例 1: 输入:n = 2, k = 2 输出:4 解释:一共有四种不同的方案: 第一种方案:涂第一列; 第二种方
LCP 22. 黑白方格画 (数学 排列组合)
LeetCode: LCP 22. 黑白方格画 题目大意 给定一个 n * n 的棋盘, 然后我们需要涂任意数量的行数 或者 任意数量的列数,使得棋盘中的黑色格子数量为 k 思路: 看到这个数据范围, 这道题应该是用暴力就能解决了,不需要太注重算法的选择。 看了下题解区 >> 得到方向 >> 需要用到数学的排列组合原来 数学 + 排列组合 比如在 4*4 的棋盘中,我们需要涂满 12 个格子 棋盘: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 我们可
【阶乘】个人练习-Leetcode-LCP 22. 黑白方格画
思路:虽然是简单题,但还想了一会的。因为【最终图案数】并不是【操作方法数】。比如2*2的格子,【先涂一行再涂一列】和【先涂一列再涂一行】得到的图案是一样的。我们发现涂的行列具体是哪几行哪几列并不影响最终黑格子的数目,因此可以先得出【需要涂黑。题目链接:https://leetcode.cn/problems/ccw6C7/description/,每一次操作可以把方格的某一整行或者某一整列涂黑,求使得黑色格子数字为。求阶乘的话可以用一个数组来保存结果,避免重复计算。的【最终图案】的个数。
#力扣 LeetCode LCP 22. 黑白方格画 @FDDLC
题目描述: https://leetcode-cn.com/problems/ccw6C7/ Java代码: class Solution { //f(2,3)=4,f(3,5)=9 public int c(int n,int m){ int ans=720; //1*2*3*4*5*6=720 for(int i=1;i<=m;i++)ans=ans*(n-i+1)/i; return ans/720; } pu.
LeetCode LCP 22. 黑白方格画(二进制枚举)
题意: 小扣注意到秋日市集上有一个创作黑白方格画的摊位。 摊主给每个顾客提供一个固定在墙上的白色画板,画板不能转动。 画板上有 n * n 的网格。绘画规则为,小扣可以选择任意多行以及任意多列的格子涂成黑色,所选行数、列数均可为 0。 小扣希望最终的成品上需要有 k 个黑色格子,请返回小扣共有多少种涂色方案。 注意:两个方案中任意一个相同位置的格子颜色不同,就视为不同的方案。 数据范围: 1 <= n <= 6 0 <= k <= n * n 解法: 观察到n比较小,可以用二
菜鸟刷题之路——Q21:黑白方格画
问题:LCP 22. 黑白方格画 分析 分析:LeetCode给的是简单题,但是我觉得把这个题从题面转化成组合数问题还是需要一定时间的——需要画图。首先需要明确:我们只能一次画一整行或者一整列。带着这个限制我们往下看。 思想就是组合,为什么是组合可以看一下解答里面带图的分析,相信你一看就懂。 注意几点: 边界条件,k=1和k=0的情况 其次就是返回的条件: 当前选取的i行格子已经超过了总格子数k,那么直接返回之前累积的数; 当前选取的i行格子刚好了总格子数k,那么返回之前累积的数+combinati
每日一题第105期:leecode LCP 22. 黑白方格画
题目 小扣注意到秋日市集上有一个创作黑白方格画的摊位。摊主给每个顾客提供一个固定在墙上的白色画板,画板不能转动。画板上有 n * n 的网格。绘画规则为,小扣可以选择任意多行以及任意多列的格子涂成黑色,所选行数、列数均可为 0。 小扣希望最终的成品上需要有 k 个黑色格子,请返回小扣共有多少种涂色方案。 注意:两个方案中任意一个相同位置的格子颜色不同,就视为不同的方案。 示例 1: 输入:n = 2, k = 2 输出:4 解释:一共有四种不同的方案: 第一种方案:涂第一列; 第二种方案:涂第二列; 第三种
字节题库系列——LCP 22. 黑白方格画 状态枚举 || 数学
状态压缩枚举 注意n*n == k 的情况 class Solution { public: int a[7][7]; int paintingPlan(int n, int k) { int nm=0; if(k==n*n||k==0)return 1; for(int sta=0;sta < ( 1 << (2 * n) );sta++){ memset(a,0,sizeof(a));
2086



被折叠的 条评论
为什么被折叠?



