51Nod1774 多重排序

2022-05-19 19:23:02 字數 994 閱讀 2233

有乙個陣列a,長度為n,下標從1開始。現在要對a進行m次排序,每一次排序給定兩個引數t[i],r[i]表示要對陣列的前r[i]個元素進行排序,如果t[i]=1則按照非降序排序,t[i]=2則按照非公升序排序。

請輸出經過m次排序之後的陣列a。

樣例解釋:

第乙個樣例中,初始序列為:1 2 3。經過第一次排序之後變成了:2 1 3。

第二個樣例中,初始序列為:1 2 4 3。經過第一次排序之後變成了:4 2 1 3。經過第二次排序之後變成了:2 4 1 3。

搞乙個r單調遞減的棧,從最大的r向前賦值,t=1,賦最大的值,否則賦最小的值。

搞stdio.h居然效率最高,歡迎吊打qaq

#include#include//#include#includetypedef long long ll;

typedef long double ld;

typedef double db;

//#define io_opt ios::sync_with_stdio(false);cin.tie(0);cout.tie(0)

//using namespace std;

int n,m;

int a[200020],tmp[200020];

struct ee[200020];

e x;

int top=0,head,tail;

int main()

for(int i=1;i<=m;i++)

}e[++top]=x;

}head=1,tail=e[1].r;

for(int i=1;i<=e[1].r;i++)

std::sort(tmp+1,tmp+1+tail);

e[top+1].r=0;

for(int i=1;i<=top;i++)

}else}}

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

return 0;

}

Lua多重排序

網上有好多排序,不過寫的都大同小異。本文講解下多重排序,意思是多個條件排序。前提 1.lua排序的原理是氣泡排序,即從前往後比較,滿足一定條件a則交換,否則不交換。2.lua排序函式table.sort tbl,sortfunc sortfunc中會比較前後表中前後兩個值,sortfunc函式返回t...

go 多重排序 堆排序

記錄一下go實現多重排序的方法和實現堆排序的方式 實現sort介面即可用sort.sort 方法對物件進行排序,而多重排序呢,我想傳入不同排序規則,然後讓該物件依次執行不同規則 排序規則 type lessfunc func p1,p2 curriculumelem bool multisorter...

Oracle,SQL多重排序 多欄位排序

我們在查詢出資料的時候,需要根據某幾個字段進行排序。比如 查詢車輛的時候,根據車輛的型別或者註冊時間查詢車輛資訊,然後根據車輛的號碼排序,再根據車輛型別進行排序,再或者根據車輛的註冊時間進行排序。具體的查詢語句應該是 sql select hphm,hpzl,time from car where ...