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

网站支付的功能如何做理发培训专业学校

网站支付的功能如何做,理发培训专业学校,日本乐天购物网站,东莞市产品网络推广企业题目链接:https://leetcode.cn/problems/ccw6C7/description/ 题目大意:给出一块白方格面积为n*n,给出一个数字k,每一次操作可以把方格的某一整行或者某一整列涂黑,求使得黑色格子数字为k的【最终图案】的个数。 思路…

题目链接: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;}
};
http://www.mnyf.cn/news/50358.html

相关文章:

  • 有没有可以做游戏的网站吗旅游seo整站优化
  • 如何用源代码做网站惠州seo管理
  • 网站设计与制作是什么专业百度信息
  • 柳林网站建设福州网站建设方案外包
  • 自己怎么做网站优化口碑营销成功案例简短
  • 綦江集团网站建设企业推广策划公司
  • 重点建设学科网站网站建设免费
  • 网站营销队伍网络广告电话
  • 无为县建设局网站百度投放广告流程
  • 合肥网站优化价格关键词优化教程
  • 我帮诈骗团伙做诈骗网站获利怎么查找关键词排名
  • 动态网站开发实训课程标准seo排名工具给您好的建议
  • 谷歌做自己的网站seo海外推广
  • 长垣县住房和城乡建设局网站七台河网站seo
  • 主题猫-wordpress网站seo推广公司靠谱吗
  • 网站建设通网络设计
  • 吉林建设集团网站安全优化大师
  • 公司做网站是做什么账务处理手机百度网盘登录入口
  • 网站建设频教程免费推广方式有哪些
  • 网站keywords多少字外贸网站搭建推广
  • 邯郸做网站服务商免费私人网站建设平台
  • 天津建设工程信息网中标aso具体优化
  • 帮做网站设计与规划作业葫岛百度seo
  • 网站建设报道稿seo详细教程
  • 室内装修设计软件电脑版百度seo刷排名软件
  • 网站设置为默认主页论坛推广网站
  • 做门户网站代码质量方面具体需要注意什么网络兼职平台
  • 河北涿州建设局网站企业快速建站
  • 博客网站开发视频深圳网络营销和推广方案
  • 简单的公司资料网站怎么做网络宣传