NYOJ 290 動物統計加強版(字典樹模板題)

2021-08-05 21:20:10 字數 1491 閱讀 1290

時間限制:

3000 ms  |  記憶體限制:

150000 kb

難度:4 描述

在美麗大興安嶺原始森林中存在數量繁多的物種,在勘察員帶來的各種動物資料中有未統計數量的原始動物的名單。科學家想判斷這片森林中哪種動物的數量最多,但是由於資料太過龐大,科學家終於忍受不了,想請聰明如你的acmer來幫忙。

輸入第一行輸入動物名字的數量n(1<= n <= 4000000),接下來的n行輸入n個字串表示動物的名字(字串的長度不超過10,字串全為小寫字母,並且只有一組測試資料)。 

輸出輸出這些動物中最多的動物的名字與數量,並用空格隔開(資料保證最多的動物不會出現兩種以上)。 

樣例輸入

10

boar

pigsheep

gazelle

sheep

sheep

alpaca

alpaca

marmot

mole

樣例輸出

sheep 3

**[陳玉 張云聰]原創

上傳者

陳玉經典的字典樹的問題,**幾乎可以來當模版來用了,就留下來了~~~,不過貌似用運算子過載排序(不知道是不是)也能過。。。。。。。。需要注意的是開闢乙個新的記憶體時下乙個指標一定要指向null;

字典樹**:

#include#include#includeint max;

char ans[101];

struct node

;struct node *root;/*建立頭節點*/

struct node *newset()/*建立新節點*/

p->count=0;/*計數器初始化為0*/

return p;/*新建完成*/

}void insert(char *s)/*建立字典樹*/

p=p->next[s[i]-'a'];

}p->count++;

if(p->count>max)

}int main()

root->count=0;/*計數器初始化為0*/

scanf("%d",&ncases);

while(ncases--)

printf("%s %d\n",ans,max);

return 0;

}

運算子過載**:(這個要比sort跟qsort排序要快。。。。。)

#include#include#includeusing namespace std;

struct tj

w[4000001];

bool operator<(tj const&x,tj const&y)

int main()

} printf("%s %d\n",w[p].str,max);

return 0;

}

(過載運算子提交超時!)

nyoj290 動物統計加強版

時間限制 3000 ms 記憶體限制 150000 kb 難度 4 描述 在美麗大興安嶺原始森林中存在數量繁多的物種,在勘察員帶來的各種動物資料中有未統計數量的原始動物的名單。科學家想判斷這片森林中哪種動物的數量最多,但是由於資料太過龐大,科學家終於忍受不了,想請聰明如你的acmer來幫忙。輸入第一...

NYOJ 290 動物統計加強版 字典樹

經典的字典樹的問題,幾乎可以來當模版來用了,就留下來了 不過貌似用運算子過載排序 不知道是不是 也能過。需要注意的是開闢乙個新的記憶體時下乙個指標一定要指向null 字典樹 include include includeint max char ans 101 struct node struct ...

nyoj 290 動物統計加強版(RS雜湊)

時間限制 3000 ms 記憶體限制 150000 kb 難度 4 描述 在美麗大興安嶺原始森林中存在數量繁多的物種,在勘察員帶來的各種動物資料中有未統計數量的原始動物的名單。科學家想判斷這片森林中哪種動物的數量最多,但是由於資料太過龐大,科學家終於忍受不了,想請聰明如你的acmer來幫忙。輸入第一...