最終吉公尺多出題斯基沒有找到優質的題目,於是高產的吉公尺多出題斯基決定自己出一道。
首先,吉公尺多出題斯基腦洞了一道難度為 h1 的題目,然而吉公尺多出題斯基覺得太水了,於是把這題稍微改了改變成了一道難度為 h2 的。然而吉公尺多出題斯基還是覺得太水了,又稍微改了改變成了難度為 h3 的。如此進行下去吉公尺多出題斯基腦洞出了 n 個版本的題目,難度分別為 h1,…,hn。
由於吉公尺多出題斯基在腦洞的時候只是隨便改了改題目條件,所以每次改題並不一定會變難。但神奇的是,每次產生乙個新版本的題目後,吉公尺多出題斯基手上所有版本的題目難度的中位數不會降低。
很快吉公尺多出題斯基出好了題,造好了 uoi,選手們紛紛陣亡。多年後吉公尺多出題斯基再看到自己曾經出的這道題時感嘆道:「都是回憶啊……」
可是吉公尺多出題斯基突然發現自己只記得腦洞過程產生的 n 個版本難度是 a1,…,an,卻不記得每個 ai 對應的是第幾個版本了。
吉公尺多出題斯基日理萬機沒有時間再細想了,於是他找到了你 —— 風璃殤做不出題耶維奇,請你幫助吉公尺多出題斯基把 a1,…,an 排列順序,給出一組滿足條件且字典序最大的 h1,…,hn 吧!
對於乙個數列 v1,…,vm,若 m 為奇數則定義中位數為從小到大第 ⌈m/2⌉ 的數;若 m 為偶數則定義中位數為從小到大第 m/2 和第 m/2+1 的數的平均值。
第一行乙個正整數 n。
接下來一行 n 個整數 a1,…,an。
一行,n 個整數表示你找到的字典序最大的 h1,…,hn。
如果無解,輸出賣萌表情 "qwq"。
51 2 3 4 5
1 3 2 5 4
中位數依次為:。
81 2 2 3 3 3 4 4
3 3 4 3 4 2 2 1
子任務 分值 n 其他約定
1 10 1≤n≤10 無
2 10 1≤n≤100 無
3 20 1≤n≤2000 無
4 30 1≤n≤105 ai 互不相同
5 30 1≤n≤105 無
對於所有資料,滿足 1≤ai≤109。
時間限制:1s
空間限制:256mb
這是乙個大型分類討論現場。。。
講a 從小到大排序
若a[mid] = a[mid+1]
那麼左乙個右乙個直接選完,即可得到最優解。
否則往左掃,直到掃到有挨著相同的。
也是左乙個右乙個,但是肯定有剩餘。
把已經選了的放入(對頂)堆裡,維護中位數
沒選的放入multiset中。
分類討論即可。。。
#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;
typedef long long ll;
const int n = 1e5+10;
inline int read()
int n;
int a[n] , vis[n];
priority_queuea , b;
multisets;
void push(int x)
void solve()
cout << '\n'; return ;
} while(mid > 1 && a[mid] != a[mid - 1]) mid--;
vis[mid] = 1; cout << a[mid] << ' '; int p = mid - 1 , q = n;
while(p && q > mid) cout << a[p] << ' ' , vis[p--] = 1 , cout << a[q] << ' ' , vis[q--] = 1;
for(int i = 1 ; i <= n ; ++i) if(!vis[i]) s.insert(a[i]); else push(a[i]);
while(!s.empty()) // 滿足堆裡的中位數 <= 沒選的的最小值
else
cout << q << ' '; s.erase(s.find(q)); push(q); // s.erase(find(q)) 是只刪乙個
} return ;
}int main()
/*10
1 2 2 3 3 3 4 4 5 6
*/
UTR 2 題目排列順序
又要出題了。宇宙出題中心主任 吉公尺多出題斯基,坐在辦公桌前策劃即將到來的 uoi。這場比賽有 n 道題,吉公尺多出題斯基需要決定這些題目的難度,然後再在汪洋大海中尋找符合該難度的題目。題目的難度可以用乙個 1 到 n 的排列 a 1,dots,a n 表示,其中 a i 表示第 i 道題目在這 n...
uoj278 UTR 2 題目排列順序
題目 讀進來 f 之後,把權值作為第一關鍵字從小到大排序,位置作為第二關鍵字從大到小排序,這樣排序後的第 i 個位對應的位置就應該填數字 i 權值作為第一關鍵字,保證了出現在其之前的數權值必它小的填的數也比它小,權值必它大的填的數也比它大 權值相同時按照位置從大到小排序,這樣權值相同的一組就是遞減的...
UOJ278 UTR 2 題目排列順序
作者部落格 正解 排序.解題報告 考場上我是make了幾組資料,然後用暴力跑跑才發現的結論.比如說 顯然2只能由1轉移過來,3只能由2轉移過來,並且,相同權值的話,最後乙個顯然是最小的,不然就可以再加一了呀.所以按權值為第一關鍵字 從小到大 下標為第二關鍵字 從大到小 排序,依次編號即可。我在考場上...