鏆村姏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的主要内容,如果未能解决你的问题,请参考以下文章

Beautiful Now 鏉數绗簲鍦?鏆村姏鏋氫妇

ural 1104. Don鈥檛 Ask Woman about Her Age鏆村姏

楂樻€ц兘MySQL鈥斺€攃ount(*) 鍜?count鍜宑ount(鍒楀悕)鍖哄埆

寮傚父鈥斺€攃md涓媕avac閿欒锛氱紪鐮丟BK涓嶅彲鏄犲皠瀛楃

鐘舵€佸帇缂╂妧宸э細鍔ㄦ€佽鍒掔殑闄嶇淮鎵撳嚮

Leetcode涔?5. 3Sum (medium)