排序 覆蓋次數

2021-09-23 13:25:06 字數 714 閱讀 2448

題意:長度都為n的a序列和b序列。定義一種運算

題解

1.題目說了改變b序列順序,就應該運用。

2.求出每個ai的覆蓋次數i * (n - i + 1),然後令ai = ai * i * (n - i + 1)。然後將a和b序列按照從小到大排序,答案是∑a[i]*b[n-i+1]

3.坑點在於排序之前不要對ai * i * (n - i + 1)取模,否則是對ai的模值排序,而不是對ai排序!

#includeusing namespace std ;

#define n 200005

#define mod 998244353

typedef long long ll ;

ll a[n] , b[n] ;

ll n ;

ll ans = 0 ;

int main()

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

sort(a + 1 , a + n + 1) ;

sort(b + 1 , b + n + 1) ;

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

printf("%i64d" , ans) ;

}

氣泡排序中交換次數與比較次數

氣泡排序的過程中每次交換就是消除乙個逆序對,而比較次數由其外層迴圈確定,因為內層是肯定迴圈至結束的。用了歸併排序求逆序對,樹狀陣列求乙個數的最大逆序對數。內部迴圈的次數為n 1,n 2.n m 數列求和。如下,大家可以測試下。include include include include inclu...

歸併排序比較次數 計數排序

在前面的章節裡,我們知道歸併排序是一種高效的排序演算法,在任何情況下時間複雜度都為 它需要用額外的記憶體空間來暫時儲存歸併過程中的元素,因此我們可以認為歸併排序是以犧牲一部分記憶體空間為代價來獲得時間的高效性。相反,如果記憶體空間有限,我們就必須以犧牲時間為代價來保證空間不被過度使用。像上面所說的那...

排序演算法 穩定性 比較次數 交換次數

本文 無名大盜 在學習排序演算法時,出於效率考慮,經常容易看到演算法的穩定性 比較次數及交換次數研究。特別是考試或者公司筆試題,經常出現這樣的題目。由於排序演算法有很多種,平時提出大家才能說出個大概,但真要考查這些細節,估計很多人都說不準確。博主下決心寫此文章,徹底探查清楚這些問題,與大家共享之。首...