• LCCUP ‘20 力扣杯 秋季编程大赛


    第一题

    LCP 22. 黑白方格画(easy)

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

    小扣希望最终的成品上需要有 k 个黑色格子,请返回小扣共有多少种涂色方案。

    注意:两个方案中任意一个相同位置的格子颜色不同,就视为不同的方案。

    //数学题,判断一下k==0和k==n*n的两种特殊情况
    //其他情况当选取a行b列涂色时,被涂黑的格子数是a*n+(n-a)*b
    //故而当a*n+(n-a)*b==k时,存在涂色方案,且方案数为组合数C(n,a)*C(n,b)
    class Solution { public: int f(int num) { if (num == 0) return 1; else return num * f(num - 1); } //阶乘函数 int C(int n, int m){ return f(n)/(f(m)*f(n-m)); } //组合数函数 int paintingPlan(int n, int k) { if(k==0||k==n*n)return 1; int ans=0; for(int a=0;a<=n;a++){ for(int b=0;b<=n;b++){ if((a+b)*n-a*b==k){ ans=ans+C(n,a)*C(n,b); } } } return ans; } };
  • 相关阅读:
    23种设计模式-桥接模式
    23种设计模式-单列模式
    23种设计模式-迭代器模式
    23种设计模式-组合模式
    23种设计模式-备忘录模式
    23种设计模式-适配器模式
    23种设计模式-状态模式
    SVN的安装和应用
    线程、线程池
    条形码
  • 原文地址:https://www.cnblogs.com/Dancing-Fairy/p/13700220.html
Copyright © 2020-2023  润新知