洛谷 P4447 AHOI2018初中組 分組

2021-08-22 12:58:38 字數 746 閱讀 5197

題目

總共有n個隊員,每個人都有乙個實力值a[i]。把n個隊員分成若干個小組。

要求分成的每個小組的隊員實力值連續,同時,乙個隊不需要兩個實力相同的選手。

給出乙個合法的分組方案,滿足所有人都恰好分到乙個小組。

使得人數最少的組人數最多,輸出人數最少的組人數的最大值。

注意:實力值可能是負數,分組的數量沒有限制。

對於100%的資料滿足:1≤n≤100000,|a[i]|≤10^9。

想通了就很簡單。

貪心。為了能讓最小的人數盡可能大,應當把滿足要求的人,放在滿足條件且人數最少的組。

往下看**加上注釋應當是可以看得懂的。

**

#include#includeint s[100010];//s記錄隊伍的長度 

long long int a[100010],max[100010];//a記錄隊員的實力,max記錄每個隊伍的最大數

void dfs(int l,int r)

}if(xl) dfs(l,y);

}int main()}}

if(tt==0)//沒有符合的隊伍

else//有符合的組

} int ans=1e9;

for(int i=1;i<=num;i++)//尋找人數最少的組人數的最大值

printf("%d",ans);

return 0;

}

洛谷 P4447 AHOI2018初中組 分組

題目 一開始沒讀懂題,直接排序 模擬找最短長度,像 6 1 2 3 1 2 3這組資料這種查詢方法結果是1,正解是3 include include include include include include include include using namespace std typedef...

P4447 AHOI2018初中組 分組(貪心

傳送門 思路 貪心。將陣列從小到大排好序後,用優先佇列維護每個組的當前最大實力值和人數,按照實力值為第一關鍵字,人數為第二關鍵字排序。討論一下 因為我們是按實力值從小到大排序的,所以不會出現a i a i a i 隊首實力值的情況。1.若a i a i a i 不等於當前隊首實力值 1 1 1,則該...

P4447 AHOI2018初中組 分組 貪心

p4447 ahoi2018初中組 分組 首先想到對資料進行某種排序後順序處理,sort 因此是公升序 就可以了.一開始看到演算法標籤裡有個佇列就開了優先佇列,後來發現沒必要而且讓 看起來很複雜 最初想到的處理方式是遍歷公升序排序後的每個資料,對於每個資料遍歷所有隊伍 用二維陣列儲存所有隊伍的所有成...