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

糯米

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>
            久久精品欧美日韩精品| 在线欧美三区| 亚洲午夜电影在线观看| 国产一区二区三区久久 | 欧美大片在线影院| 欧美国产日韩a欧美在线观看| 一本久道综合久久精品| 亚洲经典三级| 在线一区观看| 欧美精品一区二区三| 欧美日韩一级视频| 欧美日韩午夜精品| 久久人人九九| 欧美激情五月| 国产伦精品一区二区三区免费| 国产视频在线一区二区| 欧美婷婷六月丁香综合色| 久久av资源网| 亚洲一区二区在线| 欧美黄色日本| 亚洲免费av片| 欧美在线观看天堂一区二区三区| 久久久中精品2020中文| 欧美女主播在线| 女生裸体视频一区二区三区| 亚洲一区二区三区在线| 91久久精品视频| 一区二区三区久久精品| 久久久成人网| 国产精品美女诱惑| 最新中文字幕亚洲| 欧美在线观看视频一区二区| 亚洲一区二区三区四区在线观看| 欧美一区二区在线看| 亚洲高清免费视频| 亚洲欧洲精品一区二区三区| 麻豆精品视频在线观看| 久久激情中文| 欧美亚洲专区| 亚洲成人在线视频网站| 欧美亚洲免费在线| 欧美一区二区视频在线观看2020| 久久国产精品亚洲va麻豆| 欧美三级视频在线播放| 亚洲大胆视频| 亚洲高清在线精品| 亚洲男女自偷自拍| 亚洲国产成人不卡| 亚洲精品在线三区| 99精品国产99久久久久久福利| 久久视频这里只有精品| 国产精品一区二区欧美| 亚洲精品日韩一| 亚洲精品综合| 亚洲免费大片| 日韩小视频在线观看专区| 99re亚洲国产精品| 欧美电影免费观看| 亚洲国产精品尤物yw在线观看| 亚洲欧美影院| 麻豆精品视频| 欧美精品少妇一区二区三区| 欧美深夜福利| 一区二区久久久久| 亚洲国产一区二区视频| 久久综合伊人77777蜜臀| 国产精品亚洲综合久久| 亚洲一区观看| 中文欧美在线视频| 欧美一区二区三区免费视| 久久久久在线| 国产精品theporn88| 99re8这里有精品热视频免费| 亚洲成人在线视频网站| 亚洲香蕉网站| 国产精品一二一区| 久久精品视频免费| 亚洲人体1000| 亚洲自拍偷拍麻豆| 老牛嫩草一区二区三区日本| 欧美日韩亚洲高清一区二区| 亚洲欧洲视频在线| 亚洲美女精品一区| 国产精品二区在线| 亚洲国产美女精品久久久久∴| 一区二区久久久久久| 久久天天躁夜夜躁狠狠躁2022 | 嫩草影视亚洲| 亚洲午夜精品网| 美女尤物久久精品| 一区二区三区|亚洲午夜| aa国产精品| 国模套图日韩精品一区二区| 欧美.www| 欧美一区二区三区在线看| 国产在线欧美| 亚洲精品日韩综合观看成人91| 久久精品成人欧美大片古装| 亚洲高清资源| 亚洲女同精品视频| 亚洲第一精品在线| 久久亚洲一区二区三区四区| 一区二区免费看| 国产自产高清不卡| 欧美一区2区视频在线观看| 久久尤物电影视频在线观看| 国产日韩欧美亚洲| 亚洲电影激情视频网站| 国产老女人精品毛片久久| 亚洲电影有码| 狠狠爱成人网| 另类天堂av| 国产精品高潮视频| 欧美顶级艳妇交换群宴| 欧美成人午夜77777| 韩国成人精品a∨在线观看| 亚洲激情视频在线播放| 狠狠色狠狠色综合人人| 亚洲综合三区| 亚洲亚洲精品在线观看 | 亚洲欧美色婷婷| 亚洲视频精选| 亚洲欧美国产制服动漫| 久久人人爽爽爽人久久久| 欧美电影电视剧在线观看| 在线欧美视频| 欧美黄色aa电影| 国产亚洲欧美一区二区| 久久亚洲不卡| 久久精品免费电影| 午夜视频久久久| 欧美色欧美亚洲另类七区| 亚洲欧美日韩国产| 欧美大片在线影院| 麻豆亚洲精品| 欧美精品七区| 亚洲成色777777女色窝| 欧美国产精品久久| 欧美国产日韩一区二区在线观看| 欧美日韩精品免费看 | 亚洲毛片在线观看| 日韩图片一区| 亚洲资源在线观看| 亚洲一区尤物| 欧美视频官网| 久久久亚洲午夜电影| 国产精品人人做人人爽人人添| 一区二区三区欧美成人| 亚洲欧美激情视频在线观看一区二区三区 | 在线观看久久av| 久久久久国产精品一区三寸| 久久综合中文字幕| 亚洲精品1区2区| 中文亚洲字幕| 性欧美1819sex性高清| 国产精品毛片a∨一区二区三区| 亚洲一区三区电影在线观看| 红桃视频国产精品| 久久人91精品久久久久久不卡 | 久久综合免费视频影院| 欧美精品日韩精品| 亚洲国产精品女人久久久| 国产免费成人av| 欧美一区成人| 亚洲一区二区三区高清不卡| 欧美天堂在线观看| 欧美黄色免费网站| 国产一区二区三区视频在线观看| 亚洲福利视频免费观看| 国产亚洲精品高潮| 久久精品一二三区| 免费一级欧美在线大片| 一区二区欧美在线观看| 国产一区久久| 欧美精品激情在线| 欧美大胆人体视频| 一本久道久久久| 韩日精品视频一区| 欧美日韩伦理在线免费| 欧美一级电影久久| 欧美在线一区二区| 亚洲欧洲在线视频| 亚洲免费网址| 国产精品日韩在线观看| 亚洲免费在线观看| 在线视频欧美日韩| 久久亚洲图片| 亚洲欧美春色| 午夜精品久久久久久久久久久久| 欧美激情一区二区久久久| 久久久亚洲国产天美传媒修理工 | 亚洲另类春色国产| 亚洲人成网站影音先锋播放| 欧美亚一区二区| 日韩小视频在线观看| 久久九九电影| 国产一区二区三区精品欧美日韩一区二区三区 | 亚洲国产黄色| 午夜一区二区三区不卡视频| 国产精品影视天天线|