【字典樹(shù)】POJ_3630_Phone List

Phone List
Time Limit: 1000MS
Memory Limit: 65536K

Description
Given a list of phone numbers, determine if it is consistent in the sense that no number is the prefix of another. Let's say the phone catalogue listed these numbers:
? Emergency 911
? Alice 97 625 999
? Bob 91 12 54 26
In this case, it's not possible to call Bob, because the central would direct your call to the emergency line as soon as you had dialled the first three digits of Bob's phone number. So this list would not be consistent.

Input
The first line of input gives a single integer, 1 ≤ t ≤ 40, the number of test cases. Each test case starts with n, the number of phone numbers, on a separate line, 1 ≤ n ≤ 10000. Then follows n lines with one unique phone number on each line. A phone number is a sequence of at most ten digits.

Output
For each test case, output "YES" if the list is consistent, or "NO" otherwise.

Sample Input
2
3
911
97625999
91125426
5
113
12340
123440
12345
98346

Sample Output
NO
YES

Source
Nordic 2007

題意:
給n個(gè)電話簿,每個(gè)電話簿中有m個(gè)電話號(hào)碼,如果電話簿中有某一個(gè)號(hào)碼是無(wú)效的(即另一個(gè)號(hào)碼為其前綴)濒生,則輸出NO佩耳,如果沒(méi)有則輸出YES频蛔。

思路:
字典樹(shù)灵迫。

#include<cstdio>
#include<cstring>
using namespace std;

char phone[10 + 5];
bool yes;

int cnt;
struct Node {
    int next[10];
    int has;
}node[1000000 + 10];

void build(int root, char* str, bool hasNew) {
    int th = str[0] - '0';
    if (node[root].next[th] == 0) {
        node[root].next[th] = cnt++;
        hasNew = true;
    }
    if (node[node[root].next[th]].has == 1)
        yes = false;
    if (str[1] == '\0') {
        node[node[root].next[th]].has = 1;
        if (!hasNew)
            yes = false;
        return;
    }
    build(node[root].next[th], str + 1, hasNew);
    return;
}

int main() {
    int T, n;
    scanf("%d", &T);
    while (T--) {
        memset(node, 0, sizeof(node));
        cnt = 2;
        yes = true;
        scanf("%d", &n);
        for (int i = 0; i < n; ++i) {
            scanf("%s", phone);
            build(1, phone, false);
        }
        if (yes)
            printf("YES\n");
        else
            printf("NO\n");
    }
    return 0;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市晦溪,隨后出現(xiàn)的幾起案子瀑粥,更是在濱河造成了極大的恐慌,老刑警劉巖三圆,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件狞换,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡舟肉,警方通過(guò)查閱死者的電腦和手機(jī)修噪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)路媚,“玉大人黄琼,你說(shuō)我怎么就攤上這事≌鳎” “怎么了脏款?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)裤园。 經(jīng)常有香客問(wèn)我撤师,道長(zhǎng),這世上最難降的妖魔是什么拧揽? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任剃盾,我火速辦了婚禮,結(jié)果婚禮上淤袜,老公的妹妹穿的比我還像新娘痒谴。我一直安慰自己,他們只是感情好铡羡,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布积蔚。 她就那樣靜靜地躺著,像睡著了一般蓖墅。 火紅的嫁衣襯著肌膚如雪库倘。 梳的紋絲不亂的頭發(fā)上临扮,一...
    開(kāi)封第一講書(shū)人閱讀 49,772評(píng)論 1 290
  • 那天论矾,我揣著相機(jī)與錄音,去河邊找鬼杆勇。 笑死贪壳,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蚜退。 我是一名探鬼主播闰靴,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼彪笼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了蚂且?” 一聲冷哼從身側(cè)響起配猫,我...
    開(kāi)封第一講書(shū)人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎杏死,沒(méi)想到半個(gè)月后泵肄,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡淑翼,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年腐巢,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片玄括。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡冯丙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出遭京,到底是詐尸還是另有隱情胃惜,我是刑警寧澤,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布洁墙,位于F島的核電站蛹疯,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏热监。R本人自食惡果不足惜捺弦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望孝扛。 院中可真熱鬧列吼,春花似錦、人聲如沸苦始。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)陌选。三九已至理郑,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間咨油,已是汗流浹背您炉。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留役电,地道東北人赚爵。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親冀膝。 傳聞我的和親對(duì)象是個(gè)殘疾皇子唁奢,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • **2014真題Directions:Read the following text. Choose the be...
    又是夜半驚坐起閱讀 9,435評(píng)論 0 23
  • 傳播這個(gè)謠言的人還真的不把西瓜皮放在眼里了麻掸。 所謂西瓜“打針”,就是傳言中用注射器向西瓜中注射甜蜜素或色素赐纱,讓西瓜...
    發(fā)現(xiàn)好物閱讀 920評(píng)論 0 0
  • 胡艷2017年5月13日總結(jié):今天周末陪小孩畫(huà)畫(huà)和拼圖论笔,身為小家伙媽媽的同時(shí),更是好朋友一樣玩耍尊重對(duì)方千所。時(shí)常也會(huì)...
    FAB至尚夏冰閱讀 346評(píng)論 0 0
  • 正在閱讀《你的生命有什么可能》 閱讀有效時(shí)間:70分鐘 閱讀中遇到了什么困難:無(wú) 閱讀收獲:在單位我們經(jīng)理經(jīng)常跟我...
    玉華_219a閱讀 219評(píng)論 0 0
  • 還是習(xí)慣動(dòng)筆 喜歡寫(xiě)字 換作手機(jī)便不知道自己要說(shuō)什么 或者是已經(jīng)不想表達(dá) 是懶 覺(jué)得矯情 我在努力的了解自己 或許...
    我吞了一顆太陽(yáng)6閱讀 167評(píng)論 0 1