• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Why so serious? --[NKU]schindlerlee

            pku1451 trie樹(shù)

            很久沒(méi)更新了,題刷了不少,但是一直沒(méi)怎么總結(jié)先貼一篇
              1
             /* 
              2  * SOUR:pku 1451
              3  * ALGO:trie
              4  * DATE: 2009年 08月 17日 星期一 13:29:46 CST
              5  * COMM:3
              6  * */
              7 #include<iostream>
              8 #include<cstdio>
              9 #include<cstdlib>
             10 #include<cstring>
             11 #include<algorithm>
             12 using namespace std;
             13 #define inf 0x7fffffff
             14 #define debug 1
             15 const int N = 1000 * 11;
             16 int mov[10][5=
             17     { {-1}, {-1}, {012-1}, {345-1}, {678-1}, {91011-1},
             18 {121314-1}, {15161718-1}, {192021-1}, {22232425-1}
             19 };
             20 
             21 struct Trie {
             22     int c;
             23     Trie *next[26];
             24      Trie() {
             25         c = 0;
             26         memset(next, 0sizeof(next));
             27     }
             28     void insert(char *s, int f);
             29     void getMax(char *s, int step, int len);
             30 *root, pool[N];
             31 int pt;
             32 void Trie::insert(char *s, int f)
             33 {
             34     c += f;
             35     if (*== 0)
             36         return;
             37     if (next[*- 'a'== NULL) {
             38         next[*- 'a'= &pool[pt++];
             39     }
             40     next[*- 'a']->insert(s + 1, f);
             41 }
             42 
             43 char tmp[61], res[61];
             44 int freq;
             45 void Trie::getMax(char *s, int step, int len)
             46 {
             47     if (step >= len) {
             48         tmp[len] = 0;
             49         if (c > freq) {
             50             //strcpy(res, tmp);
             51             for (int i = 0; i <= len; i++) {
             52                 res[i] = tmp[i];
             53             }
             54             freq = c;
             55         }
             56         return;
             57     }
             58 
             59     int idx;
             60     for (int i = 0; mov[*- '0'][i] >= 0; i++) {
             61         idx = mov[*- '0'][i];
             62         if (next[idx] != NULL) {
             63             tmp[step] = idx + 'a';
             64             next[idx]->getMax(s + 1, step + 1, len);
             65         }
             66     }
             67 }
             68 
             69 int main()
             70 {
             71     int i, k, C, D, f;
             72     char buf[30];
             73     scanf("%d"&C);
             74     for (k = 1; k <= C; k++) {
             75         root = &pool[0];
             76         pt = 1, memset(pool, 0sizeof(pool));
             77         printf("Scenario #%d:\n", k);
             78         scanf("%d"&D);
             79         while (D-- > 0) {
             80             scanf("%s %d", buf, &f); //哥一開(kāi)始buf開(kāi)小了,報(bào)了stack smashing 。。。。。。。。
             81             root->insert(buf, f);
             82         }
             83         scanf("%d"&D), getchar();
             84         while (D-- > 0) {
             85             scanf("%s", buf);
             86             buf[strlen(buf) - 1= 0;
             87 
             88             int len = strlen(buf);
             89             for (i = 1; i <= len; i++) {
             90                 freq = 0;
             91                 root->getMax(buf, 0, i);
             92                 if (freq > 0) {
             93                     printf("%s\n", res);
             94                 } else {
             95                     puts("MANUALLY");
             96                 }
             97             }
             98             printf("\n");
             99         }
            100         printf("\n");
            101     }
            102     return 0;
            103 }
            104 

            posted on 2009-08-17 22:26 schindlerlee 閱讀(1564) 評(píng)論(2)  編輯 收藏 引用 所屬分類: 解題報(bào)告

            Feedback

            # re: pku1451 trie樹(shù) 2009-08-18 09:44 戴爾筆記本

            很好  回復(fù)  更多評(píng)論   

            # re: pku1451 trie樹(shù) 2009-08-19 14:36 99讀書(shū)人

            不錯(cuò)啊!  回復(fù)  更多評(píng)論   

            俺来也俺去啦久久综合网| 久久久久国产精品麻豆AR影院| 日日狠狠久久偷偷色综合96蜜桃| 久久久精品视频免费观看| 伊人色综合久久天天人手人婷| 国内精品人妻无码久久久影院| 国产精品久久久久久久午夜片| 久久综合久久美利坚合众国| 国产精品一久久香蕉产线看| 色99久久久久高潮综合影院| 亚洲AV无码久久寂寞少妇| 久久久无码精品午夜| av无码久久久久久不卡网站| 思思久久好好热精品国产| 久久精品国产只有精品2020| 狠狠色婷婷久久综合频道日韩 | 亚洲精品无码久久久久久| 色综合久久综合网观看| 中文字幕无码精品亚洲资源网久久| 91久久九九无码成人网站| 久久精品无码专区免费青青| 久久久这里只有精品加勒比| 精品国产婷婷久久久| 日本精品久久久久中文字幕| 久久这里只有精品18| 人妻无码αv中文字幕久久琪琪布 人妻无码精品久久亚瑟影视 | 99久久国产主播综合精品 | 99久久精品免费看国产一区二区三区| 777久久精品一区二区三区无码| 久久久久亚洲Av无码专| 久久久久亚洲AV无码麻豆| 狼狼综合久久久久综合网| 亚洲中文精品久久久久久不卡| 久久人人爽人人爽人人片av麻烦| 久久久久国产日韩精品网站| 久久久久国产一级毛片高清板| 国产成人久久久精品二区三区| 伊人久久综在合线亚洲2019| 久久成人永久免费播放| 久久综合久久鬼色| 日日狠狠久久偷偷色综合96蜜桃|