Más contenido relacionado
天下一プログラマーコンテスト2015 予選A E問題 解説
- 4. 部分点 1
N/3 < K
→ 多⾓角形は⾼高々2つしか作れない
N < 3K であり、多⾓角形を3つ以上作るには点が⾜足りない
- 7. 部分点 2
N ≦ 50
この部分点は、計算量量が多項式ならば満点解法よりも多少効
率率率が悪い部分があっても取ることができます
- 12. DPの計算
dp[i] = i 個の点をいくつかの「K 個以上の点を含むグルー
プ」にわける場合の数
追加する多⾓角形は真北北の点を含むようにすると、このように
重複なく計算できる
dp[0]
=
1
for
(i
:
0
~
N)
for
(j
:
K
~
N)
{
dp[i+j]
+=
dp[i]
*
(i+j-‐1)
C
(j-‐1)
}
- 18. DP[i][j] = i 個の点のうち j 個の点が真北北の点を含む連結成
分に含まれる場合の数 / A[j]
= i 個の点のうち j 個の点が真北北の点を含む連結成分に含まれるような分割につ
いて、真北北の点を含む連結成分以外のつなぎ⽅方の個数を⾜足し合わせたもの
というDPを計算する
DP
DP[0][0]
=
1
for
(i
:
0
~
N)
for
(j
:
0
~
i)
{
for
(k
:
0
~
N)
{
DP[i+k+1][j+1]
+=
DP[i][j]
*
G[k]
}
}