題意:
給你一堆商品的名字,然後給你一些條形碼,問你這些條形碼轉換成的字串的
字首在商品中出現的個數,條形碼的每個字母是八個二進位制數字,有兩種數,大的是小的2倍,小的是0,大的是1,這裡面的吳超是 *0.95---*1.05之間。
思路:顯然是字典樹,字典樹處理字首出現次數,先把所有字串加到樹裡面,然後我
們想辦法吧這個二進位制數字翻譯成字母,其實很簡單,先找到乙個最大的,然後列舉每乙個 int(max * 1.05 / (num[i] * 0.95)) ,如果他是1,那麼當前這位是1,否則當前這位是0 ,然後轉換成十進位制。然後直接在樹上查詢就行了。
#include#include#includetypedef structtreetree;tree root;void
buid_tree(char
*
str)else
}}int
find(char
*
str)return
p->v;}int
main
()
sum=0;while
(
m--)int
now,ss=0,mk=1;max=max*1.05;for(
int
j=8;j>=1;j-- ,mk*=2) str[i-1] =ss;}
str[n] ='\0';sum+=find(str);}
printf("%d\n",sum);}return
0;}
hdu 1251 字典樹入門
ignatius最近遇到乙個難題,老師交給他很多單詞 只有小寫字母組成,不會有重複的單詞出現 現在老師要他統計出以某個字串為字首的單詞數量 單詞本身也是自己的字首 input 輸入資料的第一部分是一張單詞表,每行乙個單詞,單詞的長度不超過10,它們代表的是老師交給ignatius統計的單詞,乙個空行...
HDU1251字典樹模板
problem description ignatius最近遇到乙個難題,老師交給他很多單詞 只有小寫字母組成,不會有重複的單詞出現 現在老師要他統計出以某個字串為字首的單詞數量 單詞本身也是自己的字首 input 輸入資料的第一部分是一張單詞表,每行乙個單詞,單詞的長度不超過10,它們代表的是老師...
HDU 1251 字典樹 入門
ignatius最近遇到乙個難題,老師交給他很多單詞 只有小寫字母組成,不會有重複的單詞出現 現在老師要他統計出以某個字串為字首的單詞數量 單詞本身也是自己的字首 input 輸入資料的第一部分是一張單詞表,每行乙個單詞,單詞的長度不超過10,它們代表的是老師交給ignatius統計的單詞,乙個空行...