UOJ 9 vfk的資料 排序 字典序比較

2021-07-09 22:05:15 字數 2550 閱讀 6972

uoj上,由於一群人開心的在hack著,有的題的測試資料都有

10000

組了!為了處理這些資料,vfk決定把這道題所有輸入資料都弄出來,每個資料給個編號,比如uo

j1.in

,uoj

2.in 。

這些編號是隨機的,可以不連續,比如三組資料分別叫uo

j1.in

, uo

j100.in

,uoj

2014.in

。輸入資料的檔名一定是:題目名 + 資料編號 + 「.in.in」。

8

dajiahaowoshiyangli9.in

dajiahaowoshiyangli5.in

dajiahaowoshiyangli2.in

dajiahaowoshiyangli1.in

dajiahaowoshiyangli3.in

dajiahaowoshiyangli7.in

dajiahaowoshiyangli6.in

dajiahaowoshiyangli8.in

dajiahaowoshiyangli1.in

dajiahaowoshiyangli2.in

dajiahaowoshiyangli3.in

dajiahaowoshiyangli5.in

dajiahaowoshiyangli6.in

dajiahaowoshiyangli7.in

dajiahaowoshiyangli8.in

dajiahaowoshiyangli9.in

測試點編號

nn的規模

1 ~5n

≤100

6 ~10n

≤10000

保證每個字串的長度小於等於

100 .

時間限制:1s

空間限制:

256mb

直接排序。

第一關鍵字:長度;

第二關鍵字:字典序;

時間複雜度為o(

nllogn

) 。

#include 

#include

#include

using

namespace

std;

const

int n=32768;

const

int l=128;

int n;

struct p

p[n];

inline

intoperator

< (p pa,p pb)

int main(void)

其實資料範圍加強,也是可以做的.

還是快排,優化字串的比較方法.

對於兩個字串,我們先預處理處字首hash值,然後二分長度找到不相同的第一位。

時間複雜度優化為o(

nlog

nlogl)

.

#include 

#include

#include

using

namespace

std;

typedef

unsigned

long

long ulint;

const

int n=32768;

const

int l=128;

const

int m=257;

int n;

struct p

p[n];

inline

void p::calc(void)

}inline

intoperator

< (p pa,p pb)

return pa.s[r+1]1];

}int main(void)

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

for (int i=1;i<=n;i++) printf("%s\n",&p[i].s[1]);

return

0;}

另外還可以使用trie. o(

nl) .

較大的數字的處理方法:

①用字串儲存,注意不要誤用int;

②注意比較數的大小的時候,首先要比較長度,然後再按字典序比較;

③涉及運算時要用陣列倒著存,高精度模擬;

排序的常用方法:

①氣泡排序:針對小資料;

②快速排序/sort:普通資料;

③基數排序/trie樹排序:當元素的種類很少時考慮使用;

不要忽略方法①和方法③.

關於字典序比較的實現:

①strcmp,字典序逐位比較,o(

l)②若要多次比較,可以考慮預處理出字首hash值,然後二分+hash找最多的相同位,再比較下一位.

預處理o(l

) ,比較o(

logl

) .

資料結構與演算法9 排序1

void x sort elementtype a,int n x表示排序方法的名字 a是輸入的陣列 n是元素個數從上到下,相鄰兩個元素根據大小關係交換位置,第一次排序後最大的數會落到最底層,然後對於n 1個數繼續重複上述過程 void bubble sort elementtype a,int n...

優先佇列實現字典序最小的拓撲排序

煩人的依賴 時間限制 c c 1秒,其他語言2秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld 題目描述 ubuntu20.04 正式發布了,zls 是乙個作死小能手,於是他決定嘗試一下這個船新版本。好不容易裝完系統,zls 想要給他的系統裝一些常...

9 MySQL的資料排序

1 單個欄位的排序order by desc降序 0 9,a z,a z mysql select prod name,prod price from products order by prod price prod name prod price carrots 2.50 tnt 1 stick...