有乙個陣列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 ...