切換
舊版
前往
大廳
主題

ZeroJudge - c405: Princess Principal 公主準則【序】凱柏萊C球 解題心得

Not In My Back Yard | 2019-04-14 22:53:27 | 巴幣 0 | 人氣 201

題目連結:


題目大意:
題目有多筆測試資料,每筆測試資料佔兩列。第一列給定一正整數 N (1 ≦ N ≦ 10 ^ 5),代表現在有 N 個相異正整數。第二列則是這 N 個數的值(介於 1 ~ 10 ^ 9 之間)

現在要從這 N 個數字中挑出一些數字(保持數字間原有的相對位置),使得挑出來的序列之最左邊以及最右邊的數字皆小於這兩者以外的數字(從最左邊第二個數到最右邊第二個數的所有數)。並使這個序列越長越好。

輸出序列最長之長度為何?



範例輸入:
5
1 9 8 2 6
5
10 9 8 2 1
5
1 9 2 8 6


範例輸出:
4
2
4


解題思維:
先將原有的 N 個數重新排列(但是要記錄原本的位置),例如:數列 1 、 9 、 8 、 2 、 6 重新由小到大排之後,現在依序的各自原有之位置, 1 、 4 、 5 、 3 、 2。

接著就照現在排序後的順序去由左往右掃過一次,並定義 L = N + 1 、 R = 0 、 C = 0 ,分別代表當前的左右端點以及包含於其中的數字。在每次掃到新數字的時候更新 L 、 R 兩端點的位置,然後求 R - L - C + 2 的值(這適用於 N > 1 的情況, N = 1 時額外判斷即可),最後將 C 加一。

此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

心彩
C個最小的數字 其中"必定"有兩個數字位於L跟R的位置 而那個+2 就是要補那兩個數字 我的問題是那個必定 現在好像能理解為什麼了
2023-04-27 15:22:55
Not In My Back Yard
準確來說,L 和 R 一定在 C 個數字中(根據定義,目前看過的數字當然包含 L 和 R 這兩個位置的數字,因為 L 和 R 是用目前看過的數字來定義的)。
2023-04-27 15:31:13
Not In My Back Yard
這 C 個數字在挑出來的子陣列中是「最小」的反而才是需要說明的。
2023-04-27 15:32:34
Not In My Back Yard
所以看來 L 和 R 的定義不夠人性化?不夠清楚?
2023-04-27 15:33:35
心彩
在更新數字時 我們確保了最小的數字群必定出現在L跟R的位置 而 +2 就是把這兩個位置的數字補回去 可能是因為沒有強調L跟R這個位置會有最小的數字的關係吧 對我來說 跳了兩個步驟 (先思考 +2 要把L跟R位置加回去 在思考L跟R位置必定是最小數字的原因)
2023-04-27 15:56:37
Not In My Back Yard
好,我開始不懂你不懂在哪裡了。

根據你的敘述我已經把所有你想要得到的資訊都給了。
2023-04-27 16:02:27
Not In My Back Yard
「在更新數字時 我們確保了最小的數字群必定出現在L跟R的位置 」反了,是 L ~ R 這個子陣列必定會包含目前看到的這 C 個數字,而這 C 個數字是子陣列中最小的數字群。
2023-04-27 16:03:53
Not In My Back Yard
「而 +2 就是把這兩個位置的數字補回去」結論上沒錯。
2023-04-27 16:04:33
Not In My Back Yard
「可能是因為沒有強調L跟R這個位置會有最小的數字的關係吧 」我強調了。
2023-04-27 16:05:07
Not In My Back Yard
「跳了兩個步驟」哪兩個?我需要知道才能釐清你現在卡在哪。
2023-04-27 16:06:00
Not In My Back Yard
『「在更新數字時 我們確保了最小的數字群必定出現在L跟R的位置 」反了,是 L ~ R 這個子陣列必定會包含目前看到的這 C 個數字,而這 C 個數字是子陣列中最小的數字群。』更正一下,請當我沒有說過開頭的「反了」,打字打到腦袋打結了。
2023-04-27 16:15:26
心彩
我想說表達我的思路歷程 可以解決這句 看來 L 和 R 的定義不夠人性化?不夠清楚? " L ~ R 這個子陣列必定會包含目前看到的這 C 個數字,而這 C 個數字是子陣列中最小的數字群。" 這段我是完全沒問題的
2023-04-27 16:38:16
心彩
兩個步驟 先思考+2 是加什麼(L跟R位置) 在思考(L跟R一定是最小數字群嗎?)
2023-04-27 16:39:07
Not In My Back Yard
所以看來你現在清楚了?如果是就好了,我可以開始把文章內文重寫一次了。
2023-04-27 17:18:37
心彩
是呀 只是想說提出我卡住的點 對你寫文章有幫助
2023-04-27 17:20:39
Not In My Back Yard
真的超讚的,很感謝。別的題目有問題也可以盡量問。

不然這邊都沒人問真的是有點會懷疑自我。開始理解為何教授老師們希望學生問問題了。
2023-04-27 17:29:49

更多創作