1. 程式人生 > >2016.08.16【初中部 NOIP提高組 】模擬賽C

2016.08.16【初中部 NOIP提高組 】模擬賽C

T1:裸裸的快排...

T2:貪心.

先按從小到大排序.

很明顯對於前i個人中,如果i<=3很容易推出,大於三的時候其實也只有對應的兩種渡河方法.

第一種:把前i-1個人渡過去的最優值+第一個人回來接他+再渡過去.

第二種:把前i-2個人渡過去的最優值+第一個人回來接他+把i和i-1兩人渡過去+第1,2人渡河.

T3:最最簡單的bfs即可.

T4:

f[i]表示以第i個數為結尾時的最優值,很明顯,我們要列舉一個數j去更新i(當a[j]-a[i]的絕對值為1時)但這樣子的效率為O(n²)

但仔細觀察可以發現,更新j的時候,只需找前j個當中3個互不相等的數中最大的三個數來更新i即可.

因為假設有一個數x,則只有x-1和x+1不能更新x,再多出一個數,不管是什麼數,都可以更新x了.

注意是互不相等,所以處理起來會有點麻煩,多細心點還有腦洞大點就可以了.