AC代碼git
能夠推導出\(f_1 = 1, f_2 = 2, ..., f_n = f_{n - 2} + 1\)。github
而後就能夠推出\(ans = \lfloor \frac{n + 2}{2} \rfloor\)。app
記錄\(x\)出現的次數,以及分別記錄出現次數大於等於\(2, 4, 6, 8\)的\(x\)的個數,以此記爲\(ge2, ge4, ge6, ge8\)。spa
當且僅當\(ge8 \ge 1\),或者\(ge6 \ge 1 \text{ and } ge2 \ge 2\),或者\(ge4 \ge 2\),或者\(ge4 \ge 1 \text{ and } ge2 \ge 3\)時,答案爲YES。ci
貪心的將出現次數最多的數字儘量地分散便可。get
這題能夠用dp作。it
首先,經過觀察能夠獲得一個格子對答案的貢獻等於以這個格子爲中心的最大目標圖形的半徑長度。可是獲取這個半徑是很難的。io
不過,一個目標圖形能夠由4個以這個格子爲頂點的等腰直角三角形拼接獲得,而且4個最大直角邊長度中的最小值就是當前格子對答案的貢獻。用dp能夠很容易的維護一個方向上的最大直角邊長度。ast
因此,只須要用4次dp來獲取4個方向上的最大直角邊邊長,最後再取4箇中的最小值,獲得的值就是一個格子對答案的貢獻。class
全部格子貢獻之和即爲答案。
題目都看不懂,提早溜了。