@@ -84979,7 +84979,7 @@ <h3 id="_3">方法一:组合计数</h3>
8497984979<p>我们可以选择涂黑 $n$ 行中的任意 $i$ 行,涂黑 $n$ 列中的任意 $j$ 列。那么涂黑的格子数为 $n \times (i + j) - i \times j$。如果满足 $n \times (i + j) - i \times j = k$,则方案数为 $\binom{n}{i} \times \binom{n}{j}$。累加所有满足条件的方案数即可。</p>
8498084980<p>注意,如果 $k = n \times n$,则只有一种方案,直接返回 $1$ 即可。</p>
8498184981<p>时间复杂度 $O(n^2)$,空间复杂度 $O(n^2)$。其中 $n$ 是网格的边长。</p>
84982- <div class="tabbed-set tabbed-alternate" data-tabs="1:5 "><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio" /><input id="__tabbed_1_2" name="__tabbed_1" type="radio" /><input id="__tabbed_1_3" name="__tabbed_1" type="radio" /><input id="__tabbed_1_4" name="__tabbed_1" type="radio" /><input id="__tabbed_1_5" name="__tabbed_1" type="radio" /><div class="tabbed-labels"><label for="__tabbed_1_1">Python3</label><label for="__tabbed_1_2">Java</label><label for="__tabbed_1_3">C++</label><label for="__tabbed_1_4">Go</label><label for="__tabbed_1_5">TypeScript</label></div>
84982+ <div class="tabbed-set tabbed-alternate" data-tabs="1:6 "><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio" /><input id="__tabbed_1_2" name="__tabbed_1" type="radio" /><input id="__tabbed_1_3" name="__tabbed_1" type="radio" /><input id="__tabbed_1_4" name="__tabbed_1" type="radio" /><input id="__tabbed_1_5" name="__tabbed_1" type="radio" /><input id="__tabbed_1_6" name="__tabbed_1" type="radio" />< div class="tabbed-labels"><label for="__tabbed_1_1">Python3</label><label for="__tabbed_1_2">Java</label><label for="__tabbed_1_3">C++</label><label for="__tabbed_1_4">Go</label><label for="__tabbed_1_5">TypeScript</label><label for="__tabbed_1_6">Swift </label></div>
8498384983<div class="tabbed-content">
8498484984<div class="tabbed-block">
8498584985<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
@@ -85199,6 +85199,68 @@ <h3 id="_3">方法一:组合计数</h3>
8519985199<span class="p">}</span>
8520085200</code></pre></div></td></tr></table></div>
8520185201</div>
85202+ <div class="tabbed-block">
85203+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
85204+ <span class="normal"> 2</span>
85205+ <span class="normal"> 3</span>
85206+ <span class="normal"> 4</span>
85207+ <span class="normal"> 5</span>
85208+ <span class="normal"> 6</span>
85209+ <span class="normal"> 7</span>
85210+ <span class="normal"> 8</span>
85211+ <span class="normal"> 9</span>
85212+ <span class="normal">10</span>
85213+ <span class="normal">11</span>
85214+ <span class="normal">12</span>
85215+ <span class="normal">13</span>
85216+ <span class="normal">14</span>
85217+ <span class="normal">15</span>
85218+ <span class="normal">16</span>
85219+ <span class="normal">17</span>
85220+ <span class="normal">18</span>
85221+ <span class="normal">19</span>
85222+ <span class="normal">20</span>
85223+ <span class="normal">21</span>
85224+ <span class="normal">22</span>
85225+ <span class="normal">23</span>
85226+ <span class="normal">24</span>
85227+ <span class="normal">25</span>
85228+ <span class="normal">26</span>
85229+ <span class="normal">27</span>
85230+ <span class="normal">28</span>
85231+ <span class="normal">29</span>
85232+ <span class="normal">30</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">class</span> <span class="nc">Solution</span> <span class="p">{</span>
85233+ <span class="kd">func</span> <span class="nf">paintingPlan</span><span class="p">(</span><span class="kc">_</span> <span class="n">n</span><span class="p">:</span> <span class="nb">Int</span><span class="p">,</span> <span class="kc">_</span> <span class="n">k</span><span class="p">:</span> <span class="nb">Int</span><span class="p">)</span> <span class="p">-></span> <span class="nb">Int</span> <span class="p">{</span>
85234+ <span class="k">if</span> <span class="n">k</span> <span class="p">==</span> <span class="mi">0</span> <span class="o">||</span> <span class="n">k</span> <span class="p">==</span> <span class="n">n</span> <span class="o">*</span> <span class="n">n</span> <span class="p">{</span>
85235+ <span class="k">return</span> <span class="mi">1</span>
85236+ <span class="p">}</span>
85237+
85238+ <span class="kd">func</span> <span class="nf">combination</span><span class="p">(</span><span class="kc">_</span> <span class="n">n</span><span class="p">:</span> <span class="nb">Int</span><span class="p">,</span> <span class="kc">_</span> <span class="n">r</span><span class="p">:</span> <span class="nb">Int</span><span class="p">)</span> <span class="p">-></span> <span class="nb">Int</span> <span class="p">{</span>
85239+ <span class="k">guard</span> <span class="n">r</span> <span class="o"><=</span> <span class="n">n</span> <span class="k">else</span> <span class="p">{</span> <span class="k">return</span> <span class="mi">0</span> <span class="p">}</span>
85240+ <span class="k">if</span> <span class="n">r</span> <span class="p">==</span> <span class="mi">0</span> <span class="o">||</span> <span class="n">r</span> <span class="p">==</span> <span class="n">n</span> <span class="p">{</span> <span class="k">return</span> <span class="mi">1</span> <span class="p">}</span>
85241+ <span class="kd">var</span> <span class="nv">result</span> <span class="p">=</span> <span class="mi">1</span>
85242+ <span class="k">for</span> <span class="n">i</span> <span class="k">in</span> <span class="mf">0.</span><span class="p">.<</span><span class="n">r</span> <span class="p">{</span>
85243+ <span class="n">result</span> <span class="p">=</span> <span class="n">result</span> <span class="o">*</span> <span class="p">(</span><span class="n">n</span> <span class="o">-</span> <span class="n">i</span><span class="p">)</span> <span class="o">/</span> <span class="p">(</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span>
85244+ <span class="p">}</span>
85245+ <span class="k">return</span> <span class="n">result</span>
85246+ <span class="p">}</span>
85247+
85248+ <span class="kd">var</span> <span class="nv">ans</span> <span class="p">=</span> <span class="mi">0</span>
85249+
85250+ <span class="k">for</span> <span class="n">i</span> <span class="k">in</span> <span class="mf">0.</span><span class="p">..</span><span class="n">n</span> <span class="p">{</span>
85251+ <span class="k">for</span> <span class="n">j</span> <span class="k">in</span> <span class="mf">0.</span><span class="p">..</span><span class="n">n</span> <span class="p">{</span>
85252+ <span class="kd">let</span> <span class="nv">paintedCells</span> <span class="p">=</span> <span class="n">n</span> <span class="o">*</span> <span class="p">(</span><span class="n">i</span> <span class="o">+</span> <span class="n">j</span><span class="p">)</span> <span class="o">-</span> <span class="n">i</span> <span class="o">*</span> <span class="n">j</span>
85253+ <span class="k">if</span> <span class="n">paintedCells</span> <span class="p">==</span> <span class="n">k</span> <span class="p">{</span>
85254+ <span class="n">ans</span> <span class="o">+=</span> <span class="n">combination</span><span class="p">(</span><span class="n">n</span><span class="p">,</span> <span class="n">i</span><span class="p">)</span> <span class="o">*</span> <span class="n">combination</span><span class="p">(</span><span class="n">n</span><span class="p">,</span> <span class="n">j</span><span class="p">)</span>
85255+ <span class="p">}</span>
85256+ <span class="p">}</span>
85257+ <span class="p">}</span>
85258+
85259+ <span class="k">return</span> <span class="n">ans</span>
85260+ <span class="p">}</span>
85261+ <span class="p">}</span>
85262+ </code></pre></div></td></tr></table></div>
85263+ </div>
8520285264</div>
8520385265</div>
8520485266<!-- solution:end -->
@@ -85232,6 +85294,11 @@ <h3 id="_3">方法一:组合计数</h3>
8523285294
8523385295 <nav>
8523485296
85297+ <a href="https://github.com/klever34" class="md-author" title="@klever34">
85298+
85299+ <img src="https://avatars.githubusercontent.com/u/12745225?v=4&size=72" alt="klever34">
85300+ </a>
85301+
8523585302 <a href="https://github.com/yanglbme" class="md-author" title="@yanglbme">
8523685303
8523785304 <img src="https://avatars.githubusercontent.com/u/21008209?v=4&size=72" alt="yanglbme">
0 commit comments