|Vijos|动态规划|P1111 小胖的水果

原创 2016年08月28日 16:38:51

https://vijos.org/p/1111

LCS,(两个字符串的总长度 - 两个字符串求得的LCS)即为答案, 注意输入的字符是0开始的,而dp里0-1会越界错误,输入时不要把输入的字符指针指向a,而是指向a+1

#include<iostream>
#include<cstdio>  
#include<cstring>   
#include<algorithm> 
#define ms(i,j) memset(i, j, sizeof(i)); 
using namespace std;
char a[105], b[105];
int f[105][105];
int main()  
{
	while (scanf("%s%s", a+1, b+1)==2)
	{
		ms(f,0);
		int l1 = strlen(a+1), l2 = strlen(b+1); 
		for (int i=1;i<=l1;i++)
		for (int j=1;j<=l2;j++)
		{
			if (a[i]==b[j]) f[i][j] = f[i-1][j-1]+1;
			    else f[i][j] = max(f[i-1][j], f[i][j-1]);
		}
		printf("%d\n", l1+l2-f[l1][l2]);
	}
    return 0;  
}  


版权声明:博客停更,请到"再见,CSDN"文章中找新博客地址

相关文章推荐

较难树形动态规划(Vijos 1144 小胖守皇宫/皇宫看守)

vijos 1144 小胖守皇宫/皇宫看守 树形一维三状态DP 考虑后效性的问题

【动态规划】Vijos P1121 马拦过河卒

题目链接:   https://vijos.org/p/1616 题目大意:   卒从(0,0)走到(n,m),只能向下或向右,不能被马一步碰到或走到马,有几种走法。 题目思路:   【动态规划】  ...

Vijos P1431 守望者的逃离(动态规划,贪心)

看起来不好下笔,明白思路了,就会变得很简单

Vijos P1098 合唱队形(动态规划,双重LIS)

分别求两次最长上升序列(LIS),计算出最长满足队形的人数,即可知要出列的人数

Vijos P1317 开心的金明(动态规划,01背包,NOIP)

所谓01背包,其实就是减去一定的开销,得到一定的收益,能理解f[j-v]+v*p,基本也就明白动规的基本原理了

Vijos P1313 金明的预算方案(动态规划,有依赖的背包)

代码当然是借鉴了别人的,还有一种分组的算法,但这种动态+递归的算法要简短得多

【动态规划】【二分】【最长上升子序列】Vijos P1028 魔族密码

题目链接:   https://vijos.org/p/1028 题目大意:   给N个字符串(N   如果在一个由一个词或多个词组成的表中,除了最后一个以外,每个单词都被其后的一个单词所包含   即...

Vijos P1775 乌龟棋(动态规划,四维)

每一种卡片都需要用一维来表示,因此用到四维

Vijos P1071 新年趣事之打牌(动态规划,背包,统计方案数)

状态转移方程中已经考虑了所有的方案数,所以只要将求最大值是的max换成sum,就可以实现方案数的统计。 因为要输出未现在的牌的序号,所以另设数组c,记录当达到重量j时,所需要用的牌号

Vijos P1006 晴天小猪历险记之Hill (动态规划+YY)

转载请注明出处:http://blog.csdn.net/a1dark 分析:这题很像数塔那种动态规划、边界要特殊处理一下、但是只是这样是不行的、由于每一层可以循环、所以不满足动态规划的无后效行、于...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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