HDU 1251 統計難題

2021-05-28 02:55:25 字數 2643 閱讀 3513

problem description

ignatius最近遇到乙個難題,老師交給他很多單詞(只有小寫字母組成,不會有重複的單詞出現),

現在老師要他統計出以某個字串為字首的單詞數量(單詞本身也是自己的字首).

input

輸入資料的第一部分是一張單詞表,每行乙個單詞,單詞的長度不超過10,它們代表的是老師交給ignatius統計的單詞,

乙個空行代表單詞表的結束.第二部分是一連串的提問,每行乙個提問,每個提問都是乙個字串.

注意:本題只有一組測試資料,處理到檔案結束.

output

對於每個提問,給出以該字串為字首的單詞的數量.

sample input

banana

band

beeabsolute

acm ba

bband

abc

sample output 2

3 10

第一次做trie樹, hehe, 不過沒有釋放記憶體, 所以內在消耗比較大...

不過比下面那種方法快

先發了再說吧...哈哈

後來寫了release, 記憶體消耗還是那麼大...

原來是只有一組資料

2010-11-17 14:10:41    accepted    1251    93ms    43740k    2081b    c    y

#include

<

stdio.h

>

#include

<

string

.h>

#include

<

stdlib.h

>

#define

zero 0

#define

alph_len 26 /* 26個字母 */

const

char

first_char ='

a';typedef

struct

node

node,

*node;

node root;

/*字典樹的根結點(不儲存任何字元)

*//*

插入單詞

*/void

insert(

char

*str)

current

=root;

/*開始時當前的結點為根結點

*/for

(i =

0; i

<

len; i++)

/*逐個字元插入

*/else

/*此字元還沒出現過, 則新增結點

*/current

->

child[index]

=newnode;

current

=newnode;

/*修改當前的結點的位置

*/current

->n =

1;/*此新單詞出現一次*/}

}}/*在字典樹中查詢單詞

*/int

find_word(

char

*str)

current

=root;

/*查詢從根結點開始

*/for

(i =

0; i

<

len; i++)

else

}return

current

->

n;/*

此單詞出現的次數*/}

/*釋放記憶體

*/void

release(node root)

for(i =0

; i<

alph_len; i++)

}free( root );

root

=null;

}int

main()

while

(gets(tmp), strcmp(tmp,

"")

!=zero)

while

(scanf("%s

", tmp)

!=eof)

release( root );

return0;

} 另一種做法是用stl的map統計每一次的鍵

簡單些...想要速度的話就用trie樹寫寫...^_^

2010-10-02 22:22:28    accepted    1251    968ms    20980k    376 b    c++    y

#include

<

iostream

>

#include

<

map>

#include

<

cstring

>

#include

<

string

>

using

namespace

std;

intmain()

for(i

=len; i

>

0; i--)

}while

( gets(str) )

return0;

}

統計難題 hdu1251

昨天在小策策 和 小超人的指導下學習了下字典樹,於是今天寫了下這個很早就想學的演算法 寫的很醜,而且還看了下課件的 include 2497868 2010 05 28 21 25 42 accepted 1251 93ms 43784k 1152 b c 悔惜晟 include include u...

hdu 1251統計難題

字典樹模版題 動態實現 include include include define maxn 26 struct node root void insert char str else int find char str return current count int main 靜態實現 inc...

hdu 1251 統計難題

problem description ignatius最近遇到乙個難題,老師交給他很多單詞 只有小寫字母組成,不會有重複的單詞出現 現在老師要他統計出以某個字串為字首的單詞數量 單詞本身也是自己的字首 input 輸入資料的第一部分是一張單詞表,每行乙個單詞,單詞的長度不超過10,它們代表的是老師...