P1091 NOIP2004 提高組 合唱隊形

2022-09-22 02:27:13 字數 529 閱讀 5209

\(n\) 位同學站成一排,**老師要請其中的 \(n-k\) 位同學出列,使得剩下的 \(k\) 位同學排成合唱隊形。

合唱隊形是指這樣的一種隊形:設 \(k\) 位同學從左到右依次編號為 \(1,2,\) … \(,k\),他們的身高分別為 \(t_1,t_2,\) … \(,t_k\),則他們的身高滿足 \(t_1< \cdots t_>\) … \(>t_k(1\le i\le k)\)。

你的任務是,已知所有 \(n\) 位同學的身高,計算最少需要幾位同學出列,可以使得剩下的同學排成合唱隊形。

其實思路很簡單,就是跑兩遍最長上公升子串行,然後再列舉中間的求最大值。

本題 \(o(n^2)\) 演算法可過。

方程如下:

\[f[i]=\max_

} }for (int i = n; i >= 1; i--)

} }for (int i = 1; i <= n; i++)

ans=n-ans;

cout << ans << endl;

return 0;

}

P1092 NOIP2004 提高組 蟲食算

原題鏈結 考察 dfs 剪枝 思路 從最後一列開始dfs,用bool 陣列記錄哪些數字被使用了即可.接下來思考如何剪枝 搜尋順序剪枝 從大到小列舉,大數字在低位可能性較大.冗餘處理 這裡是排列型列舉.可行性剪枝 比較關鍵,需要兩個剪枝 高位無進製.從第1列 第n列檢查是否符合實際.最優性剪枝 無 1...

NOIP提高組2004 合併果子

在乙個果園裡,多多已經將所有的果子打了下來,而且按果子的不同種類分成了不同的堆。多多決定把所有的果子合成一堆。每一次合併,多多可以把兩堆果子合併到一起,消耗的體力等於兩堆果子的重量之和。可以看出,所有的果子經過 n 1n 1n 1 次合併之後,就只剩下一堆了。多多在合併果子時總共消耗的體力等於每次合...

題解 NOIP提高組2004 合併果子

在乙個果園裡,多多已經將所有的果子打了下來,而且按果子的不同種類分成了不同的堆。多多決定把所有的果子合成一堆。每一次合併,多多可以把兩堆果子合併到一起,消耗的體力等於兩堆果子的重量之和。可以看出,所有的果子經過n 1次合併之後,就只剩下一堆了。多多在合併果子時總共消耗的體力等於每次合併所耗體力之和。...