3297: [USACO2011 Open]forgot

來源:互聯網
上載者:User

標籤:

3297: [USACO2011 Open]forgotTime Limit: 10 Sec  Memory Limit: 128 MB
Submit: 69  Solved: 51
[Submit][Status][Discuss]
Description

   發生了這麼多,貝茜已經忘記了她cowtube密碼。然而,她記得一些有用的資訊。 
首先,她記得她的密碼(記為變數P)長度為L(1 <= L<=1,000)字串,並可以被分成 
一個或多個詞(不一定是唯一的),詞來自於字典中NW(1<=NW<=1,000)個獨特的詞。 
一個詞W_i,被定義為一個長度1..20的小寫字母序列(‘a‘..‘z‘)。 
她還記得她密碼中某些字母的位置。 
請看下面的例子。貝西知道她的密碼看起來像"a??l?ban???????"(‘?‘代表一個字母,她不記得), 
她的字典裡有下面的詞: 

apple 
cow 
farmer 
banana 
bananas 
pies 

貝西有兩個可能的密碼是的“applebananapies”和“applebananascow”。 
給你字典,貝西記得的字母,請找到她的密碼。如果有一個以上的密碼是可能的,找到字典序最前的。 

Input

*第1行:兩個空格分隔的整數:L和NW 
*第2行:一個字串,長度為L:P 
*第3..N+2W行:第I+2行包含在字典中的第i個字:W_i

Output

 

*第1行:密碼

Sample Input15 6
a??l?ban???????
apple
cow
farmer
banana
bananas
pies

Sample OutputApplebananapies
HINT Source

Silver

 

題解:看了半天一直還在想著怎麼套AC自動機,直到看到了N<=1000這個複雜度,於是感覺暴力DP都能過啦麼麼噠

 1 /************************************************************** 2     Problem: 3297 3     User: HansBug 4     Language: Pascal 5     Result: Accepted 6     Time:1204 ms 7     Memory:2832 kb 8 ****************************************************************/ 9  10 var11    i,j,k,l,m,n:longint;12    a,b:array[0..2000] of ansistring;13    s1:ansistring;14 function check(x:longint;s2:ansistring):boolean;15          var i:longint;16          begin17               for i:=1 to length(s2) do18                   if (s1[x+i]<>‘?‘) and (s1[x+i]<>s2[i]) then exit(false);19               exit(true);20          end;21 begin22      readln(m,n);23      readln(s1);24      for i:=1 to n do readln(a[i]);25      for i:=1 to m do26          for j:=1 to n do27              begin28                   k:=i-length(a[j]);29                   if (k<0) or ((k<>0) and (b[k]=‘‘)) then continue;30                   if check(k,a[j]) then31                      begin32                           if (b[i]=‘‘) or (b[i]>(b[k]+a[j])) then b[i]:=b[k]+a[j];33                           k:=0;34                      end;35              end;36      writeln(b[m]);37      readln;38 end.    

 

3297: [USACO2011 Open]forgot

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.