hdu_5707_Combine String("巴卡斯杯" 中国大学生程序设计竞赛 - 女生专场)
2016-05-30 23:52
477 查看
题目连接: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; }View Code
相关文章推荐
- Android Jni之Helloworld
- PHP实现四种基本排序算法
- servletcontext监听器的启动位置以及tomcat和eclipse的目录结构
- -g gdb无法list
- gzip压缩tomcat服务器响应包,大幅提升web性能
- 基于sparksql调用shell脚本执行SQL
- servletcontext监听器的启动位置以及tomcat和eclipse的目录结构
- Android 快传 文件互传
- Android线程池
- 介绍一个windows下用的ftp小工具Xftp 5
- 第二阶段冲刺6
- Android开源中国客户端学习 (自定义View)左右滑动控件ScrollLayout
- PHP写日志什么时候需要加锁?
- Linq如何实现int与not in?
- C#实现http多线程下载文件
- Linear regression with one variable
- 数据库JDBC连接不上
- DLR、ASTER GDEM、SRTM3、GMTED2010等5种全球高程数据对比
- VS 2010 “启用虚空格”属性设置 防止光标在一行中任意移动
- linux(rh7)下/etc/shadow文件分析