• <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>

            poj3267

            The Cow Lexicon

            Time Limit: 2000MS Memory Limit: 65536K
            Total Submissions: 5619 Accepted: 2599

            Description

            Few know that the cows have their own dictionary with W (1 ≤ W ≤ 600) words, each containing no more 25 of the characters 'a'..'z'. Their cowmunication system, based on mooing, is not very accurate; sometimes they hear words that do not make any sense. For instance, Bessie once received a message that said "browndcodw". As it turns out, the intended message was "browncow" and the two letter "d"s were noise from other parts of the barnyard.

            The cows want you to help them decipher a received message (also containing only characters in the range 'a'..'z') of length L (2 ≤ L ≤ 300) characters that is a bit garbled. In particular, they know that the message has some extra letters, and they want you to determine the smallest number of letters that must be removed to make the message a sequence of words from the dictionary.

            Input

            Line 1: Two space-separated integers, respectively: W and L
            Line 2: L characters (followed by a newline, of course): the received message
            Lines 3..W+2: The cows' dictionary, one word per line

            Output

            Line 1: a single integer that is the smallest number of characters that need to be removed to make the message a sequence of dictionary words.

            Sample Input

            6 10
            browndcodw
            cow
            milk
            white
            black
            brown
            farmer

            Sample Output

            2
            這個題目還是跟最長公共子序列類似,
            狀態(tài)表示還是用f[i]表示前i個中最少去掉的數目能夠構成合法序列
            則f[i]=i
            f[i]=min(f[i],f[j]+remove(s[j+1..i],ss[k]))
            if ss[k]能在s[j+1..i]中表示出來
            所以我們不必用LCS來求這個remove,直接用pp[k]表示第k個單詞能在s[j+1..i]中匹配到的地方的地方
            如果單詞能在其中表示出來,則min
            這類題目的類似在于f[i]總是由f[j](0<j<i)推出來的
             1#include<stdio.h>
             2#include<string.h>
             3#include<math.h>
             4#define MAX 350
             5int f[MAX];
             6char sd[MAX];
             7int pp[610],len[610];
             8char s[610][26];
             9int l1,n,i,j,k;
            10int min(int a,int b)
            11{
            12    if (a>b) return b;
            13    else return a;
            14}

            15int main()
            16{
            17    scanf("%d%d",&n,&l1);
            18    scanf("%s",&sd);
            19    for (i=l1-1;i>=0 ;i-- )
            20    {
            21        sd[i+1]=sd[i];
            22    }

            23    for (i=1; i<=n ; i++ )
            24    {
            25        scanf("%s",&s[i]);
            26        len[i]=strlen(s[i]);
            27    }

            28    for (i=1; i<=l1 ; i++ )
            29    {
            30        f[i]=i;
            31        for (j=1; j<=n ; j++)
            32        {
            33            pp[j]=len[j]-1;
            34        }

            35        for (j=i; j>=1; j--)
            36        {
            37            for (k=1; k<=n ; k++ )
            38            {
            39                if (sd[j]==s[k][pp[k]])
            40                {
            41                    pp[k]--;
            42                }

            43                if (pp[k]<0)
            44                {
            45                    f[i]=min(f[i],f[j-1]+i-j-len[k]+1);
            46                }

            47            }

            48        }

            49    }

            50    printf("%d\n",f[l1]);
            51    return 0;
            52}

            53//f[i]=min(f[j]+remove(s[j+1..i],s[k]))
            54//
            55
             

            posted on 2012-02-21 19:31 jh818012 閱讀(406) 評論(1)  編輯 收藏 引用

            評論

            # re: poj3267 2012-02-29 17:23 王私江

            我嚓,我該努力了。  回復  更多評論   

            <2025年7月>
            293012345
            6789101112
            13141516171819
            20212223242526
            272829303112
            3456789

            導航

            統(tǒng)計

            常用鏈接

            留言簿

            文章檔案(85)

            搜索

            最新評論

            • 1.?re: poj1426
            • 我嚓,,輝哥,,居然搜到你的題解了
            • --season
            • 2.?re: poj3083
            • @王私江
              (8+i)&3 相當于是 取余3的意思 因為 3 的 二進制是 000011 和(8+i)
            • --游客
            • 3.?re: poj3414[未登錄]
            • @王私江
              0ms
            • --jh818012
            • 4.?re: poj3414
            • 200+行,跑了多少ms呢?我的130+行哦,你菜啦,哈哈。
            • --王私江
            • 5.?re: poj1426
            • 評論內容較長,點擊標題查看
            • --王私江
            久久福利片| 久久综合色老色| 久久www免费人成精品香蕉| 亚洲精品成人久久久| 亚洲AV日韩AV天堂久久| 国产日韩欧美久久| 亚洲αv久久久噜噜噜噜噜| 国产日产久久高清欧美一区| 伊色综合久久之综合久久| 嫩草影院久久国产精品| 久久久SS麻豆欧美国产日韩| 91久久精品视频| 综合久久国产九一剧情麻豆| 久久精品国产99久久久香蕉| 国产精品久久久久久福利69堂| 久久中文字幕人妻丝袜| 久久精品国产亚洲精品| 久久r热这里有精品视频| 色欲久久久天天天综合网| 久久精品人妻一区二区三区| 国产精品美女久久久久网| 日日噜噜夜夜狠狠久久丁香五月 | 日韩精品久久久肉伦网站| 国产精品午夜久久| 91精品国产色综久久| 色综合久久中文综合网| 97r久久精品国产99国产精| 久久综合九色综合网站| 人妻精品久久无码区| 国内精品九九久久精品| 欧洲精品久久久av无码电影| 久久AV无码精品人妻糸列| 综合人妻久久一区二区精品| 中文字幕无码精品亚洲资源网久久 | 69SEX久久精品国产麻豆| 久久久久国产精品熟女影院| 亚洲精品乱码久久久久久按摩 | 热re99久久精品国99热| 久久久久久毛片免费播放| 99久久精品国内| 99热精品久久只有精品|