{"id":225,"date":"2010-04-17T11:41:00","date_gmt":"2010-04-17T03:41:00","guid":{"rendered":"http:\/\/localhost\/?p=225"},"modified":"2010-04-17T11:41:00","modified_gmt":"2010-04-17T03:41:00","slug":"usaco2007_febthe_cow_lexicon","status":"publish","type":"post","link":"https:\/\/www.shuizilong.com\/wjmzbmr\/?p=225","title":{"rendered":"[Usaco2007 Feb]The Cow Lexicon"},"content":{"rendered":"\n<p>[Usaco2007 Feb]The Cow  Lexicon<\/p>\n<p>Time Limit:5000MS&#160; Memory Limit:65536K<br \/>Total Submit:8 Accepted:7 <br \/>Case Time Limit:1000MS<\/p>\n<p><strong>Description <\/strong><\/p>\n<p> \u6ca1\u6709\u51e0\u4e2a\u4eba\u77e5\u9053,\u5976\u725b\u6709\u5979\u4eec\u81ea\u5df1\u7684\u5b57\u5178,\u91cc\u9762\u7684\u6709W (1 \u2264 W \u2264  600)\u4e2a\u8bcd,\u6bcf\u4e2a\u8bcd\u7684\u957f\u5ea6\u4e0d\u8d85\u8fc725,\u4e14\u7531\u5c0f\u5199\u5b57\u6bcd\u7ec4\u6210.\u5979\u4eec\u5728\u4ea4\u6d41\u65f6,\u7531\u4e8e\u5404\u79cd\u539f\u56e0,\u7528\u8bcd\u603b\u662f\u4e0d\u90a3\u4e48\u51c6\u786e.\u6bd4\u5982,\u8d1d\u831c\u542c\u5230\u6709\u4eba\u5bf9\u5979 \u8bf4&quot;browndcodw&quot;,\u786e\u5207\u7684\u610f\u601d\u662f&quot;browncow&quot;,\u591a\u51fa\u4e86\u4e24\u4e2a&quot;d&quot;,\u8fd9\u4e24\u4e2a&quot;d&quot;\u5927\u6982\u662f\u8eab\u8fb9\u7684\u566a\u97f3.  <\/p>\n<p>\u5976\u725b\u4eec\u53d1\u89c9\u8fa8\u8ba4\u90a3\u4e9b\u5947\u602a\u7684\u4fe1\u606f\u5f88\u8d39\u52b2,\u6240\u4ee5\u5979\u4eec\u5c31\u60f3\u8ba9\u4f60\u5e2e\u5fd9\u8fa8\u8ba4\u4e00\u6761\u6536\u5230\u7684\u6d88\u606f,\u5373\u4e00\u4e2a\u53ea\u5305\u542b\u5c0f\u5199\u5b57\u6bcd\u4e14\u957f\u5ea6\u4e3aL (2 \u2264 L \u2264  300)\u7684\u5b57\u7b26\u4e32.\u6709\u4e9b\u65f6\u5019,\u8fd9\u4e2a\u5b57\u7b26\u4e32\u91cc\u4f1a\u6709\u591a\u4f59\u7684\u5b57\u6bcd,\u4f60\u7684\u4efb\u52a1\u5c31\u662f\u627e\u51fa\u6700\u5c11\u53bb\u6389\u51e0\u4e2a\u5b57\u6bcd\u5c31\u53ef\u4ee5\u4f7f\u8fd9\u4e2a\u5b57\u7b26\u4e32\u53d8\u6210\u51c6\u786e\u7684&quot;\u725b\u8bed&quot;(\u5373\u5976\u725b\u5b57\u5178\u4e2d\u67d0\u4e9b\u8bcd \u7684\u4e00\u4e2a\u6392\u5217).  <\/p>\n<p><\/p>\n<p><strong>Input <\/strong><\/p>\n<p> \u7b2c1\u884c:\u4e24\u4e2a\u7528\u7a7a\u683c\u9694\u5f00\u7684\u6574\u6570,W\u548cL.  <br \/>\u7b2c2\u884c:\u4e00\u4e2a\u957f\u5ea6\u4e3aL\u7684\u5b57\u7b26\u4e32,\u8868\u793a\u6536\u5230\u7684\u4fe1\u606f.  <br \/>\u7b2c3\u884c\u81f3\u7b2cW+2\u884c:\u5976\u725b\u7684\u5b57\u5178,\u6bcf\u884c\u4e00\u4e2a\u8bcd.  <\/p>\n<p><strong>Output <\/strong><\/p>\n<p> \u552f\u4e00\u4e00\u884c:\u4e00\u4e2a\u6574\u6570,\u8868\u793a\u6700\u5c11\u53bb\u6389\u51e0\u4e2a\u5b57\u6bcd\u5c31\u53ef\u4ee5\u4f7f\u4e4b\u53d8\u6210\u51c6\u786e\u7684&quot;\u725b\u8bed&quot;.  <\/p>\n<p><strong>Sample Input <\/strong><\/p>\n<p>6 10<br \/>browndcodw<br \/>cow<br \/>milk<br \/>white<br \/>black<br \/>brown<br \/>farmer<\/p>\n<p><strong>Sample Output <\/strong><\/p>\n<p>2<\/p>\n<p><strong>Source<\/strong><\/p>\n<p><strong>\u4e00\u822c\u6765\u8bf4\u5bf9\u4ed8\u8fd9\u79cd\u5b57\u7b26\u4e32\u5339\u914d\u7684\u95ee\u9898\u90fd\u662f\u8981\u7528Dp\u7684\u3002\u3002<br \/>\u8fd9\u9053\u9898\u7528Dp\uff08i,s,p\uff09\u8868\u793a\u5f53\u524d\u7b2c\u5339\u914d\u5230\u7b2ci\u4e2a\u5b57\u7b26\uff0c\u6700\u672b\u662f\u7b2cs\u4e2a\u5355\u8bcd\u7684\u957f\u4e3ap\u7684\u524d\u7f00\u3002\u3002<br \/>\u7136\u540e\u5bf9\u4e8e\u6bcf\u4e2a\u5b57\u7b26\u5f00\u4e2avector\u8bb0\u5f55\u51fa\u73b0\u8fc7\u7684\u4f4d\u7f6e\uff0c\u540c\u65f6\u7528MaxEnd\u8bb0\u5f55\u5f53\u65f6\u53ef\u4ee5\u5f00\u65b0\u4e32\u7684\u4f4d\u7f6e\u7684Dp\u6700\u5927\u503c\uff08\u7528\u4e8e\u8f6c\u79fb\u4e32\u7684\u7b2c\u4e00\u4e2a\u9876\u70b9\uff09\u3002\u3002\u6ce8\u610fvector\u8981\u6392\u4e2a\u5e8f\u4ee5\u9632\u6b62\u540e\u6548\u6027\u3002\u3002<br \/>\u5c31\u53ef\u4ee5\u4e86\u3002\u3002\u5177\u4f53\u770bCode\u5427(*^__^*) \u563b\u563b\u3002\u3002<br \/>Code\uff1a<br \/><\/strong><\/p>\n<p>#include &lt;vector&gt;<br \/>#include &lt;algorithm&gt;<br \/>#include &lt;utility&gt;<br \/>#include &lt;iostream&gt;<br \/>#include &lt;cstdio&gt;<br \/>#include &lt;cmath&gt;<br \/>#include &lt;cstdlib&gt;<br \/>#define rep(i,n) for(int i=0;i&lt;n;i++)<br \/>#define pb push_back<br \/>const int inf=~0U&gt;&gt;2,maxw=600,maxn=300,maxl=26;<br \/>using namespace std;<br \/>string S[maxw],A;<br \/>int w,l;<br \/>int Dp[maxw][maxl]={0};<br \/>struct state<br \/>{<br \/>    int s,p;<br \/>    state(int _s,int _p):s(_s),p(_p){}<br \/>    bool operator&lt;(const state&amp;o)const<br \/>    {return p&gt;o.p;}<br \/>};<br \/>vector&lt;state&gt; P[maxl];<br \/>int main()<br \/>{<br \/>    \/\/freopen(&quot;in&quot;,&quot;r&quot;,stdin);<br \/>    cin&gt;&gt;w&gt;&gt;l;<br \/>    cin&gt;&gt;A;<br \/>    rep(i,w)<br \/>    {<br \/>        cin&gt;&gt;S[i];<br \/>        rep(j,S[i].size())<br \/>        {<br \/>            P[S[i][j]-&#8216;a&#8217;].pb(state(i,j));<br \/>            Dp[i][j]=-inf;<br \/>        }<br \/>    }<br \/>    rep(i,26)sort(P[i].begin(),P[i].end());<br \/>    int MaxEnd=0;<br \/>    rep(t,l)<br \/>    {<br \/>        int c=A[t]-&#8216;a&#8217;;int nextMaxEnd=MaxEnd;<br \/>        for(vector&lt;state&gt;::iterator i=P.begin();i!=P.end();i++)<br \/>        {<br \/>            if(!i-&gt;p)Dp[i-&gt;s][i-&gt;p]=MaxEnd+1;<br \/>            else Dp[i-&gt;s][i-&gt;p]&gt;?=Dp[i-&gt;s][i-&gt;p-1]+1;<br \/>            if(i-&gt;p==S[i-&gt;s].size()-1)nextMaxEnd&gt;?=Dp[i-&gt;s][i-&gt;p];<br \/>        }<br \/>        MaxEnd=nextMaxEnd;<br \/>    }<br \/>    cout&lt;&lt;l-MaxEnd&lt;&lt;endl;<br \/>}<\/p>\n","protected":false},"excerpt":{"rendered":"<p>[Usaco2007 Feb]The Cow Lexicon Time Limit:5000MS&#160; Memory Limit:65536KTotal Submit:8 Accepted:7 Case Time Limit:1000MS Description \u6ca1\u6709\u51e0\u4e2a\u4eba\u77e5\u9053,\u5976\u725b\u6709\u5979\u4eec\u81ea\u5df1\u7684\u5b57\u5178,\u91cc\u9762\u7684\u6709W (1 \u2264 W \u2264 600)\u4e2a\u8bcd,\u6bcf\u4e2a\u8bcd\u7684\u957f\u5ea6\u4e0d\u8d85\u8fc725,\u4e14\u7531\u5c0f\u5199\u5b57\u6bcd\u7ec4\u6210.\u5979\u4eec\u5728\u4ea4\u6d41\u65f6,\u7531\u4e8e\u5404\u79cd\u539f\u56e0,\u7528\u8bcd\u603b\u662f\u4e0d\u90a3\u4e48\u51c6\u786e.\u6bd4\u5982,\u8d1d\u831c\u542c\u5230\u6709\u4eba\u5bf9\u5979 \u8bf4&quot;browndcodw&quot;,\u786e\u5207\u7684\u610f\u601d\u662f&quot;browncow&quot;,\u591a\u51fa\u4e86\u4e24\u4e2a&quot;d&quot;,\u8fd9\u4e24\u4e2a&quot;d&quot;\u5927\u6982\u662f\u8eab\u8fb9\u7684\u566a\u97f3. \u5976\u725b\u4eec\u53d1\u89c9\u8fa8\u8ba4\u90a3\u4e9b\u5947\u602a\u7684\u4fe1\u606f\u5f88\u8d39\u52b2,\u6240\u4ee5\u5979\u4eec\u5c31\u60f3\u8ba9\u4f60\u5e2e\u5fd9\u8fa8\u8ba4\u4e00\u6761\u6536\u5230\u7684\u6d88\u606f,\u5373\u4e00\u4e2a\u53ea\u5305\u542b\u5c0f\u5199\u5b57\u6bcd\u4e14\u957f\u5ea6\u4e3aL (2 \u2264 L \u2264 300)\u7684\u5b57\u7b26\u4e32.\u6709\u4e9b\u65f6\u5019,\u8fd9\u4e2a\u5b57\u7b26\u4e32\u91cc\u4f1a\u6709\u591a\u4f59\u7684\u5b57\u6bcd,\u4f60\u7684\u4efb\u52a1\u5c31\u662f\u627e\u51fa\u6700\u5c11\u53bb\u6389\u51e0\u4e2a\u5b57\u6bcd\u5c31\u53ef\u4ee5\u4f7f\u8fd9\u4e2a\u5b57\u7b26\u4e32\u53d8\u6210\u51c6\u786e\u7684&quot;\u725b\u8bed&quot;(\u5373\u5976\u725b\u5b57\u5178\u4e2d\u67d0\u4e9b\u8bcd \u7684\u4e00\u4e2a\u6392\u5217). Input \u7b2c1\u884c:\u4e24\u4e2a\u7528\u7a7a\u683c\u9694\u5f00\u7684\u6574\u6570,W\u548cL. \u7b2c2\u884c:\u4e00\u4e2a\u957f\u5ea6\u4e3aL\u7684\u5b57\u7b26\u4e32,\u8868\u793a\u6536\u5230\u7684\u4fe1\u606f. \u7b2c3\u884c\u81f3\u7b2cW+2\u884c:\u5976\u725b\u7684\u5b57\u5178,\u6bcf\u884c\u4e00\u4e2a\u8bcd. Output \u552f\u4e00\u4e00\u884c:\u4e00\u4e2a\u6574\u6570,\u8868\u793a\u6700\u5c11\u53bb\u6389\u51e0\u4e2a\u5b57\u6bcd\u5c31\u53ef\u4ee5\u4f7f\u4e4b\u53d8\u6210\u51c6\u786e\u7684&quot;\u725b\u8bed&quot;. Sample Input 6 10browndcodwcowmilkwhiteblackbrownfarmer Sample Output 2 Source \u4e00\u822c\u6765\u8bf4\u5bf9\u4ed8\u8fd9\u79cd\u5b57\u7b26\u4e32\u5339\u914d\u7684\u95ee\u9898\u90fd\u662f\u8981\u7528Dp\u7684\u3002\u3002\u8fd9\u9053\u9898\u7528Dp\uff08i,s,p\uff09\u8868\u793a\u5f53\u524d\u7b2c\u5339\u914d\u5230\u7b2ci\u4e2a\u5b57\u7b26\uff0c\u6700\u672b\u662f\u7b2cs\u4e2a\u5355\u8bcd\u7684\u957f\u4e3ap\u7684\u524d\u7f00\u3002\u3002\u7136\u540e\u5bf9\u4e8e\u6bcf\u4e2a\u5b57\u7b26\u5f00\u4e2avector\u8bb0\u5f55\u51fa\u73b0\u8fc7\u7684\u4f4d\u7f6e\uff0c\u540c\u65f6\u7528MaxEnd\u8bb0\u5f55\u5f53\u65f6\u53ef\u4ee5\u5f00\u65b0\u4e32\u7684\u4f4d\u7f6e\u7684Dp\u6700\u5927\u503c\uff08\u7528\u4e8e\u8f6c\u79fb\u4e32\u7684\u7b2c\u4e00\u4e2a\u9876\u70b9\uff09\u3002\u3002\u6ce8\u610fvector\u8981\u6392\u4e2a\u5e8f\u4ee5\u9632\u6b62\u540e\u6548\u6027\u3002\u3002\u5c31\u53ef\u4ee5\u4e86\u3002\u3002\u5177\u4f53\u770bCode\u5427(*^__^*) \u563b\u563b\u3002\u3002Code\uff1a #include &lt;vector&gt;#include &lt;algorithm&gt;#include &lt;utility&gt;#include &lt;iostream&gt;#include &lt;cstdio&gt;#include &lt;cmath&gt;#include &lt;cstdlib&gt;#define rep(i,n) for(int i=0;i&lt;n;i++)#define [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[10],"tags":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/www.shuizilong.com\/wjmzbmr\/index.php?rest_route=\/wp\/v2\/posts\/225"}],"collection":[{"href":"https:\/\/www.shuizilong.com\/wjmzbmr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.shuizilong.com\/wjmzbmr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.shuizilong.com\/wjmzbmr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.shuizilong.com\/wjmzbmr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=225"}],"version-history":[{"count":0,"href":"https:\/\/www.shuizilong.com\/wjmzbmr\/index.php?rest_route=\/wp\/v2\/posts\/225\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.shuizilong.com\/wjmzbmr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=225"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.shuizilong.com\/wjmzbmr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=225"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.shuizilong.com\/wjmzbmr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=225"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}