题目描述

思路:首先考虑k与n*n的关系,考虑几种特殊情况。
1. 当k等于所有网格数时,需要把所有网格都涂成黑色,故只有一种方案;
2. 当k等于0时,表示不需要黑色格子,所以也应该是一种方案;
3. 当k小于n时,表示要求涂黑的个数,小于整行或者整列的网格数,故没有对应的方案;
接下里考虑常规情况,当k能够整除n时,说明任选x行或x列,或者x行加x列,能够得到k个黑色网格,如果不能够整除,则表示存在重叠网格的情况,即为行列交叉时,此时k与选择的行数列数之间存在一种关系,即k=(所选行数+所选列数) * n-所选行数 *所选列数,所选行数 *所选列数即为由于行列交叉所减少的网格个数。
以下为python代码

class Solution:def paintingPlan(self, n: int, k: int) -> int:method_count = 0if k == n*n:return 1if k == 0:return 1if k < n:return 0if n % k == 0:temp = int(n/k)method_count = (math.factorial(n) / (math.factorial(n-temp)*math.factorial(temp)))*2else:row = [0 for i in range(n+1)]column = [0 for j in range(n+1)]for i in range(n+1):for j in range(n+1):if k == (i+j)*n-i*j:method_count += ((math.factorial(n) / (math.factorial(n - i) * math.factorial(i)))* (math.factorial(n) / (math.factorial(n - j) * math.factorial(j))))return int(method_count)

如有不正确的地方,请多多指教!

python黑白方格画相关推荐

  1. LeetCode LCP 22. 黑白方格画

    文章目录 1. 题目 2. 解题 1. 题目 小扣注意到秋日市集上有一个创作黑白方格画的摊位. 摊主给每个顾客提供一个固定在墙上的白色画板,画板不能转动. 画板上有 n * n 的网格.绘画规则为,小 ...

  2. LCP 22. 黑白方格画(排列组合)

    黑白方格画 题目:小扣注意到秋日市集上有一个创作黑白方格画的摊位.摊主给每个顾客提供一个固定在墙上的白色画板,画板不能转动.画板上有 n * n 的网格.绘画规则为,小扣可以选择任意多行以及任意多列的 ...

  3. 黑白方格画C++解答

    LCP 22. 黑白方格画C++解答 使用C++进行解答,虽然是简单难度的题,但自己做的时候也忽略了一些可能性,特此记录一下 当然在代码规范和代码效率上和题解上的大佬们比不了 下面是 代码. clas ...

  4. LeetCode.黑白方格画

    题目: 小扣注意到秋日市集上有一个创作黑白方格画的摊位.摊主给每个顾客提供一个固定在墙上的白色画板,画板不能转动.画板上有 n * n 的网格.绘画规则为,小扣可以选择任意多行以及任意多列的格子涂成黑 ...

  5. leetcode 1. 黑白方格画

    小扣注意到秋日市集上有一个创作黑白方格画的摊位.摊主给每个顾客提供一个固定在墙上的白色画板,画板不能转动.画板上有 n * n 的网格.绘画规则为,小扣可以选择任意多行以及任意多列的格子涂成黑色,所选 ...

  6. LCP 22.黑白方格画

    文章目录 题目简述 题解示例 数据范围 标记难度 问题解析 python3代码 C语言代码 C++代码(Copy) 大佬专属代码 凉梦空间 题目简述 小扣注意到秋日市集上有一个创作黑白方格画的摊位.摊 ...

  7. leetcode黑白方格画

    leetcode黑白方格画 题目截图: 题目限制: 示例 1: 输入:n = 2, k = 2 输出:4 解释:一共有四种不同的方案: 第一种方案:涂第一列: 第二种方案:涂第二列: 第三种方案:涂第 ...

  8. python程序员专用壁纸_程序员炫技必备:用Python生成马赛克画!(文末附源码)...

    原标题:程序员炫技必备:用Python生成马赛克画!(文末附源码) 源 | Python与数据分析文 | 强哥 大家知道马赛克画是什么吗?不是动作片里的马赛克哦~~ 马赛克画是一张由小图拼成的大图,本 ...

  9. 利用python生成字符画

    先看看效果图: 转换后: 将图片转换成字符画的原理: 先将图片转换成黑白,然后一行行的读取灰度,建立灰度与字符的映射. 转换代码: def transform(image_file): image_f ...

  10. 用Python Turtle库画一个萌化的蜘蛛侠

    你是从什么时候开始喜欢上漫威电影的?美国队长,钢铁侠,雷神? 我先入坑的是因为看了蜘蛛侠,小时候看完就幻想着什么时候自己也能成为一个英雄,我觉得第一代蜘蛛侠刻画得是最好的,也是给我印象最深刻的一代蜘蛛 ...

最新文章

  1. 实战|基于图割算法的木材表面缺陷图像分析
  2. PHP中is_numeric函数十六进制绕过0day
  3. 神策数据荣获“年度最具影响力大数据服务厂商”奖项
  4. 2.6 矩阵乘法重要特例
  5. Android属性动画进阶用法
  6. 在地址栏里输入一个URL,到这个页面呈现出来,中间会发生什么?
  7. .net core 文件流保存图片_如何将图片打包成PDF文件进行保存?
  8. 我把SpringBoot的banner换成了美女,老板说工作不饱和,建议安排加班...
  9. vlc插件怎么用 wpf_使用Vlc.DotNet在我的WPF项目中添加vlc的问题。
  10. 东西湖职业技术学校计算机专业怎么样,武汉东西湖职业技术学校怎么样
  11. 游戏关卡设计理论普及
  12. 从30天到17小时,如何让HSPICE仿真效率提升42倍?
  13. 麒麟子出了一款免费3D角色虚拟摇杆控制器!这也太好用了
  14. 解除百度云下载限制速度(谷歌浏览器)
  15. idea中启动项目 就报异常
  16. [BZOJ3572][Hnoi2014]世界树 虚树+DP
  17. 计算机运维中常见英语单词,芯片常用英文词汇整理.doc
  18. diskgenius合并分区(diskgenius合并分区到c盘)
  19. 最长单调递增子序列O(NlogN)算法
  20. 查手机服务器ip和端口网站,手机怎么看ip和端口

热门文章

  1. excel转置怎么操作_Excel八问八答,新手入门必修课
  2. 水果店差别定价策略,水果店的单品定价公式
  3. Ajax请求回调函数没有被调用
  4. --save-dev 与 --save的区别
  5. java读取邮件超大附件_javamail在收邮件时可以得到邮件大小,但是javamail在发邮件时怎么得到邮件大小?...
  6. php版微信公众号消息主动推送_php实现微信公众号主动推送消息
  7. 3207: 花神的嘲讽计划Ⅰ
  8. 1.1 2022 IT行业前景分析 | IT行业是什么工作 做什么的,互联网行业未来前景,发展趋势、职业规划,计算机专业主要学什么?就业前景如何?
  9. 计算机主板USB接口介绍,如何解决计算机主板USB接口供电不足
  10. 使用FFmpeg命令对音视频进行基础的编辑