Gym 100712J 桶排序思想 反向思維

2021-07-31 17:48:43 字數 834 閱讀 2297

給一群兒童分配糖果,每位兒童只能一包,滿足一些條件,「公平分配」:

相同年齡的分一樣多,年齡大的必須分的比前者多。

三行,第二行是兒童的年齡,第三行是包裡的糖果

思路: 資料夠小,兒童年齡只在5到15,直接暴力,利用桶排序的思想,把兒童和糖果的數量存在a和b陣列中,下標即是他們的標號,這樣從1開始,預設就排了序。

從5到15歲數遍歷,下標a是從5開始,b是從1開始,

這裡從反面開始,只要b的數量小於當前當前兒童年齡i的數量(相同糖果的數量只能等於或者多於同一年齡兒童的數量),糖果數量就要前進,只要滿住,兒童年齡前進一位。如果超過糖果數量最大50,則沒找到滿足,退出列印no,否則遍歷完15歲,即全部找到。

#include#include#include#includeusing namespace std;

const int maxn = 1000+10;

int a[maxn];

int b[maxn];

int main()

while(m--)

int pos = 0;

for(int i = 5; i <= 15; i++)}}

if(dd)

puts("no");

else

puts("yes");

}return 0;

}

演算法 桶排序思想 計數排序 基數排序 桶排序

二.基數排序 三.桶排序 桶排序的思想 量大但範圍最小 既能用陣列下標表示 整數 且 有很多是並列的 其他情況不一定比快速排序快。總結 include using namespace std const int m 50 const int scope 60 void main delete arr...

桶排序思想及其簡單實現(C )

桶排序,就是利用桶進行排序。什麼是桶呢?這裡不要把它想複雜了,桶並不是乙個新的高大上的資料結構,它只是乙個裝元素的容器。比如現在有乙個待排序的陣列a array 不難發現,其中的元素值均處在0 20之間,那我們不妨設計四個桶,其中所裝元素值分別為 0,5 5,10 10,15 15,20 之間。顯然...

借助桶排序思想完成的一道題

問題 陣列排序之後的相鄰數的最大差值 嗯,你可以排序,然後找相鄰的最大差值。但是你覺得這麼簡單我寫他幹啥。最優解 時間複雜度o n 空間o 1 那我們開始說這種方法 1 遍歷所有數,找到最小值和最大值 min和max 2 設陣列長度為n,我們準備n 1個桶 3 把max放進最後乙個桶裡,min放到第...