hdu_5707_Combine String("巴卡斯杯" 中国大学生程序设计竞赛 - 女生专场)

原创 2016年05月30日 23:52:42

题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=5707

题意:给你三个字符串 a,b,c,问你 c能否拆成a,b,a,b串的每一个字符在c中不能变

题解:当时打再现赛的时候没根据题目的特殊性而在哪xjb搜,艹,设dp[i][j]表示为c的前i个字符可由a的前j个字符与b的前i-j个字符组合,dp[i][j]=0表示行不通,dp[i][j]=1,表示能行

,然后判断是否存在dp[lenc][lena]这个状态,如果lenc!=lena+lenb,那么直接输出No。

#include<cstdio>
#include<cstring>
#define F(i,a,b) for(int i=a;i<=b;i++)

char a[2011],b[2011],c[2011],dp[2011][2011];
int lena,lenb,lenc;

int main(){
    while(~scanf("%s%s%s",a,b,c)){
        lena=strlen(a),lenb=strlen(b),lenc=strlen(c);
        if(lena+lenb!=lenc){puts("No");continue;}
        memset(dp,0,sizeof(dp)),dp[0][0]=1;
        F(i,0,lenc-1)F(j,0,i){
            if(!dp[i][j])continue;
            if(c[i]==a[j])dp[i+1][j+1]=1;
            if(c[i]==b[i-j])dp[i+1][j]=1;
        }
        if(dp[lenc][lena])puts("Yes");
        else puts("No");
    }
    return 0;
}


版权声明:CSDN感觉没博客园好用,而且还有广告,界面也不是很好看,所以换到博客园去了 新博客地址:www.cnblogs.com/bin-gege/

"巴卡斯杯" 中国大学生程序设计竞赛 - 女生专场(重现) HDU 5707

Combine String Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) ...
  • sky_miange
  • sky_miange
  • 2016年05月28日 22:08
  • 705

hdu 5707 Combine String

题意 给出a,b,c三个字符串,如果能把c拆成两个子序列,而且a,b分别等于这两个子序列,就输出Yes,否则输出No。 解法 动态规划,dp[i][j]为1表示a的前i个和b的前j个可以拼成c的...
  • Druning
  • Druning
  • 2016年07月04日 19:52
  • 299

hdu5707Combine String(Dynamic_programme)

hdu5707Combine String我的: 这个用一个二维dp,要注意很多细节,在代码里展示吧。我的:#include #include #include #include #includ...
  • xiaolonggezte
  • xiaolonggezte
  • 2016年07月24日 15:39
  • 186

hdu5707

Combine String Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) ...
  • nucshiyilang
  • nucshiyilang
  • 2016年05月28日 23:15
  • 720

hdu_5707_Combine String("巴卡斯杯" 中国大学生程序设计竞赛 - 女生专场)

题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=5707 题意:给你三个字符串 a,b,c,问你 c能否拆成a,b,a,b串的每一个字符在c中不能变 ...
  • bin_gege
  • bin_gege
  • 2016年05月30日 23:52
  • 446

hdu5707

lcs变形#include #include #include #include #include using namespace std; int dp[2050][2050]; char a[20...
  • sinat_34640019
  • sinat_34640019
  • 2016年09月12日 20:54
  • 140

HDU "巴卡斯杯" 中国大学生程序设计竞赛 - 女生专场 Combine String

【题意】给了你一个字符串a,b,c!问你c能不能由a,b来拼凑成! 【分析&解题思路】 dp[i][j]表示第一个字符串用了前i个位置(第i个位置已匹配),第二个字符串的前j个位置(第j个位置已匹配...
  • just_sort
  • just_sort
  • 2016年05月28日 20:11
  • 540

"巴卡斯杯" 中国大学生程序设计竞赛 - 女生专场(重现) HDU 5702

Solving Order Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) To...
  • sky_miange
  • sky_miange
  • 2016年05月28日 21:48
  • 537

HDU - 5707(简单dp)

abc def adebcf//yes abc def abecdf//no 问一个串是否可以是另外两个串组成, 我一开始用的队列以为只要从头开始找就好,然后发现会有一样的情况,这个无法处理,然后就...
  • sinat_36215255
  • sinat_36215255
  • 2017年05月03日 22:11
  • 91

HDU 5707 Combine String (DP)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5707 题面: Combine String Time Limit: 2000/100...
  • David_Jett
  • David_Jett
  • 2016年07月04日 19:35
  • 402
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:hdu_5707_Combine String("巴卡斯杯" 中国大学生程序设计竞赛 - 女生专场)
举报原因:
原因补充:

(最多只允许输入30个字)