牛家莊幼兒園為慶祝61兒童節舉辦慶祝活動,慶祝活動中有乙個節目是小朋友們圍成乙個圓圈跳舞。牛老師挑選出n個小朋友參與跳舞節目,已知每個小朋友的身高h_i。為了讓舞蹈看起來和諧,牛老師需要讓跳舞的圓圈隊形中相鄰小朋友的身高差的最大值最小,牛老師犯了難,希望你能幫幫他。分析:如樣例所示:
當圓圈隊伍按照100,98,103,105順時針排列的時候最大身高差為5,其他排列不會得到更優的解
輸入描述:
輸入包括兩行,第一行為乙個正整數n(3 ≤ n ≤ 20)
第二行為n個整數h_i(80 ≤ h_i ≤ 140),表示每個小朋友的身高。
輸出描述:
輸出乙個整數,表示滿足條件下的相鄰小朋友身高差的最大值。
輸入例子:
4 100 103 98 105
輸出例子:
5
對小朋友按身高排序,
使用dp[i]表示前i個小朋友最優的排列身高差最大值 dp
[i+1
]=ma
x(dp
[i],
arra
y[i]
−arr
ay[i
−2])
#include
#include
#include
#include
#include
#include
using
namespace
std;
#define debug_
int func(vector
& vec)
sort(vec.begin(), vec.end());
if (vec.size() == 2)
int my_max(0);
for (auto i = 2;i2],my_max);
}return my_max;
}int main()
; vec.insert(vec.begin(),array,array+4);
#else
cin>>n;
vec.resize(n);
for (auto i = 0;icin>>vec[i];
}#endif
cout
0;}
程式設計題 慶祝61
題目 牛家莊幼兒園為慶祝61兒童節舉辦慶祝活動,慶祝活動中有乙個節目是小朋友們圍成乙個圓圈跳舞。牛老師挑選出n個小朋友參與跳舞節目,已知每個小朋友的身高h i。為了讓舞蹈看起來和諧,牛老師需要讓跳舞的圓圈隊形中相鄰小朋友的身高差的最大值最小,牛老師犯了難,希望你能幫幫他。如樣例所示 當圓圈隊伍按照1...
演算法準備 6 1
描述 有 n 個花園,按從 1 到 n 標記。在每個花園中,你打算種下四種花之一。paths i x,y 描述了花園 x 到花園 y 的雙向路徑。另外,沒有花園有 3 條以上的路徑可以進入或者離開。你需要為每個花園選擇一種花,使得通過路徑相連的任何兩個花園中的花的種類互不相同。以陣列形式返回選擇的方...
演算法導論6 1
本小節首先介紹了 堆 的概念,然後又介紹了 二叉堆 的兩種形式 最大堆和最小堆 其中圖 a 是二叉堆邏輯上的結構,圖 b 是物理上的結構。如何從物理上的結構對映到邏輯的結構,通過下方的簡單的函式進行對映。所有的父節點都 大於等於子 節點。所有的父節點都 小於等於 子節點。在高度為 h 的堆中,元素個...