題目 奧運大包圍

2022-05-31 11:57:10 字數 736 閱讀 5064

題目描述:

為了迎接奧運,市體育局舉行手拉手大包圍活動,開始時n個人手拉手圍成乙個圈。後來這些人中的一些按順序向裡面出圈形成乙個新圈。從而使原圈形成乙個從高到低,最低與最高連線的圈。新圈重複相同的操作,直到沒有人要出圈為止。問最少要形成多少個這樣的圈。

輸入:第一行n個人,第二行輸入n個人的身高(每個身高中用空格隔開)n<=1000

輸出:最少形成多少個這樣的圈。

定理:下降子串行的個數等於最長不下降子串行的長度。

稍微想一想就明白了。

將圈拆成段列舉就是了。二分優化:最長不下降子串行的o(n*logn)演算法

話說和[noip1999]攔截飛彈 差不多,應該也可以用貪心。

1 #include2

//#include

3using

namespace

std;4//

ifstream fin("cin.in");56

int n,h[2005],c[2005],len=0,ans=10000;7

8int find(int

x)16

return

l;17}18

19int

main()

2035 ans=min(ans,len); 36}

3738 cout39//

system("pause");

40return0;

4142 }

動態規劃 二分 奧運大包圍

題目描述 為了迎接奧運,市體育局舉行手拉手大包圍活動,開始時n個人手拉手圍成乙個圈。後來這些人中的一些按順序向裡面出圈形成乙個新圈。從而使原圈形成乙個從高到低,最低與最高連線的圈。新圈重複相同的操作,直到沒有人要出圈為止。問最少要形成多少個這樣的圈。輸入 第一行n個人,第二行輸入n個人的身高 每個身...

題目1007 奧運排序問題

題目1007 奧運排序問題 時間限制 1 秒 記憶體限制 32 兆 特殊判題 否 提交 3180 解決 669 題目描述 按要求,給國家進行排名。輸入 有多組資料。第一行給出國家數n,要求排名的國家數m,國家號從0到n 1。第二行開始的n行給定國家或地區的奧運金牌數,獎牌數,人口數 百萬 接下來一行...

題目1007 奧運排序問題

時間限制 1 秒 記憶體限制 32 兆 特殊判題 否 提交 9031 解決 1952 題目描述 按要求,給國家進行排名。輸入 有多組資料。第一行給出國家數n,要求排名的國家數m,國家號從0到n 1。第二行開始的n行給定國家或地區的奧運金牌數,獎牌數,人口數 百萬 接下來一行給出m個國家號。輸出 排序...