青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

糯米

TI DaVinci, gstreamer, ffmpeg
隨筆 - 167, 文章 - 0, 評論 - 47, 引用 - 0
數據加載中……

POJ 1432 Decoding Morse Sequences 動態規劃+hash

思路如下:

匹配的遞歸過程如下。
把單詞和正文都轉換成mos碼來表示。
從正文的頭部開始匹配。
如果某個單詞是正文的前綴,那么從前綴后面的部分遞歸下去。
統計一下所有方案的數目,就是答案了。
子問題就是“從位置k開始匹配,有多少種方案”,數組保存即可。

關鍵在于怎樣快速發現某個單詞是正文的前綴。
如果順序查找,復雜度O(N),超時。
如果枚舉單詞長度后二分查找,復雜度O(L*lgN),應該不會超時,但代碼不太自然,比較難寫。
如果枚舉單詞長度后用hash查找,復雜度O(L),不會超時,而且代碼比較好寫。

事實證明,經典的字符串hash函數同樣可以用于mos碼,在65536格的閉hash里面沒有產生沖突!

#include <stdio.h>
#include 
<string.h>
#include 
<stdlib.h>

char *mos[] = {
    
".-",
    
"-",
    
"-.-.",
    
"-..",

    
".",
    
"..-.",
    
"--.",
    
".",

    
"..",
    
".---",
    
"-.-",
    
".-..",

    
"--",
    
"-.",
    
"---",
    
".--.",

    
"--.-",
    
".-.",
    
"",
    
"-",

    
"..-",
    
"-",
    
".--",
    
"-..-",

    
"-.--",
    
"--..",
};

#define HASH_SIZE 65536
#define INPUT_LEN 10032

struct _hash {
    
int val, cnt;
};

struct _hash hash[HASH_SIZE];
int dp[INPUT_LEN];
int max_len;

int strhash(char *str, int len)
{
    
int val;
    
for (val = 0; len--; str++)
        val 
= val*31 + *str;
    
return val & 0x7fffffff;
}

struct _hash *find(int val)
{
    
int h;

    
for (h = val % HASH_SIZE;
         hash[h].cnt 
&& hash[h].val != val;
         h 
= (h + 1% HASH_SIZE
        );
    
return &hash[h];
}

void insert(char *str)
{
    
int len = strlen(str);
    
int val = strhash(str, len);
    
struct _hash *= find(val);

//    printf("insert %s\n", str);

    
if (len > max_len)
        max_len 
= len;

    h
->val = val;
    h
->cnt++;
}

int calc(char *str, int start)
{
    
struct _hash *h;
    
int i, s;

//    printf("start %d %s\n", start, str + start);

    
if (!str[start])
        
return 1;

    
if (dp[start] != -1)
        
return dp[start];

    s 
= 0;
    
for (i = 1; str[start + i - 1&& i <= max_len; i++) {
        h 
= find(strhash(str + start, i));
//        printf("len %d %s cnt %d\n", i, str + start, h->cnt);
        if (h->cnt)
            s 
+= calc(str, start + i) * h->cnt;
    }

    dp[start] 
= s;
    
return s;
}

void solve()
{
    
int i, j, d, n;
    
static char word[32], str[256], in[10032];

    memset(dp, 
-1sizeof(dp));
    memset(hash, 
0sizeof(hash));
    
    scanf(
"%s%d"in&n);
    
for (i = 0; i < n; i++) {
        scanf(
"%s", word);
        str[
0= 0;
        
for (j = 0; word[j]; j++)
            strcat(str, mos[word[j] 
- 'A']);
        insert(str);
    }
//    printf("max_len %d\n", max_len);
    printf("%d\n", calc(in0));
}

int main()
{
    
int d;

    scanf(
"%d"&d);
    
while (d--)
        solve();

    
return 0;
}

posted on 2010-07-21 14:27 糯米 閱讀(717) 評論(0)  編輯 收藏 引用 所屬分類: POJ

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产日韩成人精品| 亚洲精品视频免费在线观看| 亚洲免费高清| 浪潮色综合久久天堂| 羞羞视频在线观看欧美| 亚洲视频精品在线| 亚洲一区三区视频在线观看| 一本色道久久综合狠狠躁的推荐| 激情成人av| 一区在线观看视频| 亚洲电影天堂av| 91久久极品少妇xxxxⅹ软件| 亚洲国产毛片完整版 | 国产精品亚洲аv天堂网 | 亚洲男女自偷自拍| 国产精品国产亚洲精品看不卡15 | 久久蜜臀精品av| 欧美成人精品在线观看| 国产精品美女久久福利网站| 国产在线播精品第三| 亚洲伦伦在线| 久久成人精品无人区| 91久久久久| 亚洲理论电影网| 久久xxxx精品视频| 欧美精品v日韩精品v国产精品| 国产农村妇女毛片精品久久莱园子 | 榴莲视频成人在线观看| 国产精品国色综合久久| 亚洲精品乱码久久久久久按摩观| 午夜精品福利一区二区蜜股av| 亚洲国产专区校园欧美| 久久久久久久成人| 午夜精品久久久久久久蜜桃app| 欧美激情综合在线| 亚洲日本在线观看| 国产精品美女在线| 一二三区精品| 亚洲精品国产日韩| 欧美国产日韩视频| 亚洲美女精品一区| 亚洲精品少妇30p| 国产精品久久久久久久7电影 | 亚洲美女色禁图| 亚洲国产一区二区在线| 欧美不卡视频| 亚洲深夜福利视频| 亚洲自拍另类| 国产亚洲一区二区在线观看| 久久精品视频在线观看| 午夜激情一区| 久久久综合视频| 一本色道久久加勒比精品| 亚洲欧美日韩国产另类专区| 一区一区视频| 亚洲综合国产精品| 极品少妇一区二区三区| 亚洲黄色免费电影| 国产欧美在线| 亚洲人成在线观看一区二区| 国产精品稀缺呦系列在线| 免费成人黄色片| 另类欧美日韩国产在线| 欧美日韩一区三区| 麻豆成人小视频| 欧美午夜无遮挡| 欧美高清视频一区二区| 国产色爱av资源综合区| 一区二区日韩免费看| 先锋影音国产一区| 在线亚洲成人| 欧美日韩激情网| 国产亚洲欧美一区二区| 亚洲激情成人| 亚洲乱码国产乱码精品精天堂| 亚洲第一福利社区| 欧美日韩蜜桃| 欧美在线视频一区二区三区| 欧美第十八页| 亚洲婷婷综合色高清在线| 亚洲精品国产拍免费91在线| 欧美精品91| 亚洲精品国精品久久99热| 在线不卡视频| 久久久99国产精品免费| 免费看成人av| 日韩午夜激情电影| 国产精品va在线播放我和闺蜜| 国产精品99久久久久久久vr| 性欧美大战久久久久久久免费观看| 国产精品久久久久aaaa| 欧美一级成年大片在线观看| 久久久久.com| 亚洲电影第1页| 嫩草国产精品入口| 亚洲国产另类久久精品| 亚洲第一精品在线| 男人的天堂成人在线| 欧美日韩国产欧| 狂野欧美激情性xxxx| 国产精品一区免费在线观看| 亚洲区第一页| 亚洲经典在线看| 亚洲精品乱码久久久久久蜜桃麻豆| 午夜精品久久久久久久99黑人| 亚洲免费影视| 翔田千里一区二区| 欧美视频在线观看免费网址| av不卡在线看| 亚洲日本激情| 国产精品伦理| 一区二区三区高清在线| 欧美激情亚洲另类| 美国十次了思思久久精品导航| 国产精品综合久久久| 中文网丁香综合网| 免费不卡亚洲欧美| 夜夜嗨av色综合久久久综合网| 欧美日韩在线大尺度| 欧美一区午夜精品| 99在线视频精品| 国产一区二区剧情av在线| 欧美日本三级| 欧美视频日韩| 欧美日韩高清在线播放| 亚洲一二区在线| 亚洲美女视频| 亚洲日本中文字幕免费在线不卡| 国产精品自拍在线| 欧美三级黄美女| 久久久伊人欧美| 久久青青草综合| 久久久999| 欧美国产第一页| 亚洲欧美视频| 亚洲视频1区| 韩日精品视频| 国产精品一区一区| 欧美—级在线免费片| 亚洲国产精品www| 亚洲精品专区| 中文国产成人精品久久一| 一区二区三区不卡视频在线观看| 日韩视频在线观看国产| 亚洲精品社区| 亚洲深爱激情| 亚洲电影欧美电影有声小说| 亚洲成色www久久网站| 久久婷婷国产综合国色天香| 卡通动漫国产精品| 最新成人在线| 欧美一区网站| 亚洲第一成人在线| 亚洲人成小说网站色在线| 亚洲一区二区成人在线观看| 欧美77777| 欧美国产高清| 久久久国产一区二区| 久久精品卡一| 国产精品私房写真福利视频 | 欧美日韩在线视频首页| 另类激情亚洲| 欧美va天堂va视频va在线| 欧美午夜一区| 一区二区三区色| 午夜精品久久久久久久久久久| 欧美成人a∨高清免费观看| 亚洲国产精品久久久| 久久精彩视频| 欧美日韩国产va另类| 亚洲精品视频在线看| 久久国产精品网站| 亚洲综合日本| 久久久久在线| 99精品视频免费观看| 久久人人爽人人爽| 欧美在线|欧美| 亚洲国产激情| 99精品视频免费观看视频| 亚洲日本在线视频观看| 欧美午夜电影网| 欧美一区二区三区成人| 亚洲一区二区黄| 亚洲人精品午夜| 亚洲男人的天堂在线| 激情婷婷亚洲| 亚洲精品久久久久| 亚洲一区二区在线播放| 影音先锋另类| 亚洲欧洲日韩综合二区| 亚洲免费成人| 国产日韩精品在线观看| 中文亚洲字幕| 亚洲最新合集| 亚洲人人精品| 亚洲精品国精品久久99热| 国产一区二区三区免费不卡| 亚洲激情一区二区| 韩国一区二区在线观看| 亚洲无线一线二线三线区别av|