@@ -84979,7 +84979,7 @@ <h3 id="_3">方法一:组合计数</h3>
84979
84979
<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>
84980
84980
<p>注意,如果 $k = n \times n$,则只有一种方案,直接返回 $1$ 即可。</p>
84981
84981
<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>
84983
84983
<div class="tabbed-content">
84984
84984
<div class="tabbed-block">
84985
84985
<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>
85199
85199
<span class="p">}</span>
85200
85200
</code></pre></div></td></tr></table></div>
85201
85201
</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>
85202
85264
</div>
85203
85265
</div>
85204
85266
<!-- solution:end -->
@@ -85232,6 +85294,11 @@ <h3 id="_3">方法一:组合计数</h3>
85232
85294
85233
85295
<nav>
85234
85296
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
+
85235
85302
<a href="https://github.com/yanglbme" class="md-author" title="@yanglbme">
85236
85303
85237
85304
<img src="https://avatars.githubusercontent.com/u/21008209?v=4&size=72" alt="yanglbme">
0 commit comments