鏆村姏dp+鐘舵€佽璁℃€濈淮鈥斺€攃f1303E
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了鏆村姏dp+鐘舵€佽璁℃€濈淮鈥斺€攃f1303E相关的知识,希望对你有一定的参考价值。
鏍囩锛?a href='http://www.mamicode.com/so/1/%e5%89%8d%e7%bc%80' title='鍓嶇紑'>鍓嶇紑 pos can strlen 鎬濈淮 涓嶈兘 puts define
鎰熻杩欎竴棰樼殑鐘舵€佽璁″緢鏈夎绌?/p>
涓€寮€濮嬬殑鎬濊矾鏄灇涓緎鐨勫墠鍗婇儴鍒嗭紝鍘昏椽蹇冪殑鍖归厤t涓诧紝鐒跺悗鍐嶇湅鍓╀綑閮ㄥ垎鏄惁鍙互鍖归厤t鐨勫悗鍗婇儴鍒?/p>
浣嗚繖绉嶆€濊矾鏄剧劧鏄敊鐨?鏍蜂緥閮借繃涓嶄簡)锛屽師鍥犳槸鍙兘t鍚庡崐閮ㄥ垎鐨勬煇涓壒寰佷覆鍙湪s涓?瀵瑰簲鐨勪竴涓壒寰佸簭鍒?鍑虹幇浜嗕竴娆★紝
浣嗘槸杩欎釜s涓殑鐗瑰緛搴忓垪鐢变簬琚玹鍓嶅崐閮ㄥ垎璐績鐨勫尮閰嶏紝琚墦鐮翠簡锛屾墍浠ヤ笉鑳芥垚鍔熷尮閰嶅悗鍗婇儴鍒?/p>
鍚庢潵鎯冲埌鏋氫妇t鐨勫墠鍗婇儴鍒嗗拰鍚庡崐閮ㄥ垎锛岀劧鍚庣敤涓€涓簩缁磀p[i][j]鍘绘灇涓惧尮閰嶅嵆鍙?/p>
/* 鏋氫妇pos:1->T,琛ㄧずt琚垎鎴恡[1..pos]鍜宼[pos+1..T]涓や釜涓?dp[i][j]琛ㄧず t1鍖归厤鍒癷浣嶏紝t2鍖归厤鍒癹浣嶇殑鏈€鐭殑s鍓嶇紑 */ #include<bits/stdc++.h> using namespace std; #define N 405 char s[N],t[N]; int S,T,dp[N][N],nxt[N][26],pos[26]; void init(){ for(int i=0;i<26;i++)pos[i]=S+1; for(int i=S;i>=0;i--){ for(int j=0;j<26;j++) nxt[i][j]=pos[j]; if(i)pos[s[i]-鈥?/span>a鈥?/span>]=i; } } char t1[N],t2[N]; int len1,len2; int solve(int pos){ for(int i=0;i<=T;i++) for(int j=0;j<=T;j++) dp[i][j]=0x3f3f3f3f; len1=pos,len2=T-pos; for(int i=1;i<=len1;i++)t1[i]=t[i]; for(int i=1;i<=len2;i++)t2[i]=t[i+pos]; dp[0][0]=0; for(int i=0;i<=len1;i++) for(int j=0;j<=len2;j++){ if(i==0 && j==0)continue; if(i){ int last=dp[i-1][j]; if(last<=S) dp[i][j]=min(dp[i][j],nxt[last][t1[i]-鈥?/span>a鈥?/span>]); } if(j){ int last=dp[i][j-1]; if(last<=S) dp[i][j]=min(dp[i][j],nxt[last][t2[j]-鈥?/span>a鈥?/span>]); } } if(dp[len1][len2]<=S)return 1; return 0; } int main(){ int tt;cin>>tt; while(tt--){ scanf("%s%s",s+1,t+1); S=strlen(s+1); T=strlen(t+1); init(); int flag=0; for(int i=1;i<=T;i++) if(solve(i))flag=1; if(flag)puts("YES"); else puts("NO"); } }
以上是关于鏆村姏dp+鐘舵€佽璁℃€濈淮鈥斺€攃f1303E的主要内容,如果未能解决你的问题,请参考以下文章
ural 1104. Don鈥檛 Ask Woman about Her Age鏆村姏
楂樻€ц兘MySQL鈥斺€攃ount(*) 鍜?count鍜宑ount(鍒楀悕)鍖哄埆