hdu1503 -Advanced Fruits
2016-07-12 19:23
507 查看
1.hdu 1503
题意:给你两个字符串,要你用这两个字符串组成这样一个字符串,在组成的字符串中字符的相对顺序不变的情况下,可以在组成的字符串中找到原先两个字符串,字母可以错开,但是相对顺序不能变化,要这个组成的字符串中字母数最少,并输出这个字符串。
[align=left]Sample Input[/align]
apple peach
ananas banana
pear peach
[align=left]Sample Output[/align]
appleach
bananas
pearch
思路:这是一道最长公共子序列的题目,记录路径,递归输出。
代码:
题意:给你两个字符串,要你用这两个字符串组成这样一个字符串,在组成的字符串中字符的相对顺序不变的情况下,可以在组成的字符串中找到原先两个字符串,字母可以错开,但是相对顺序不能变化,要这个组成的字符串中字母数最少,并输出这个字符串。
[align=left]Sample Input[/align]
apple peach
ananas banana
pear peach
[align=left]Sample Output[/align]
appleach
bananas
pearch
思路:这是一道最长公共子序列的题目,记录路径,递归输出。
代码:
#include <cstdio> #include <algorithm> #include <cmath> #include <cstring> using namespace std; char st[120],st2[120]; int dp[120][120]; int pos[120][120]; void print(int l,int r) { if(l!=0 || r!=0) { if(pos[l][r]==3) { print(l-1,r-1); printf("%c",st[l]); } else if(pos[l][r]==1) { print(l,r-1); printf("%c",st2[r]); } else if(pos[l][r]==2) { print(l-1,r); printf("%c",st[l]); } } return; } int main() { while(scanf("%s%s",st+1,st2+1)!=EOF) { int len = strlen(st+1),len2 = strlen(st2+1); st[0]='#',st2[0]='$'; for(int i=0; i<=len ; i++) {dp[i][0]=i;pos[i][0]=2;} for(int j =1; j <=len2; j++) {dp[0][j]=j;pos[0][j]=1;} dp[0][0]=0; for(int i=1; i<=len ; i++) for(int j =1; j <=len2; j++) { if(st[i] == st2[j]) { dp[i][j] = dp[i-1][j-1] +1; pos[i][j]=3; } else { if(dp[i][j-1] < dp[i-1][j]) { dp[i][j] = dp[i][j-1] +1; pos[i][j]=1; }else if(dp[i][j-1] >= dp[i-1][j]) { dp[i][j] = dp[i-1][j] +1; pos[i][j]=2; } } } //print(); print(len,len2); printf("\n"); // printf("%d%d %d\n",len,len2,dp[len][len2]); } return 0; } </cstring></cmath></algorithm></cstdio>
相关文章推荐
- AbstractQueuedSynchronizer(二)——acquire/acquireQueued方法
- 357. Count Numbers with Unique Digits
- 【HDU】5493 Queue(2015 ACM/ICPC Asia Regional Hefei Online)
- MUI上拉加载
- MUI下拉刷新
- MUI Ajax
- MUI utils
- AbstractQueuedSynchronizer(一)——概述
- MUI事件管理
- MUI窗口管理
- IOS Dev Intro - UISwitch
- Fuel 30 分钟快速安装OpenStack
- MUI组价五:开关、底部选项卡、9宫格和分页
- MUI组件四:选择器、滚动条、单选框、区域滚动和轮播组件
- JZOJ.1240. Fibonacci sequence
- 347. Top K Frequent Elements
- easyui datagrid属性和方法
- Longest Ordered Subsequence-POJ2533 <O(nlog(n))算法>
- xUtils的retry error, curr request is null问题
- 关于easyUI分页