码迷,mamicode.com
首页 > 其他好文 > 详细

南洋理工oj 37

时间:2017-04-14 20:36:28      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:memset   amp   include   函数实现   函数   arp   模板   最小   fine   

技术分享

思路:

输入字符串S;设sum要插入字符的最小值

从两端出发前端x=0;后端y=L-1;

首先,如果S[0]!=S[L-1],此时要么在最前面添字符,要么在末尾添字符,sum++;(这是无法避免的)

然后,S[0]=S[L-1],此时前端x +1,后端y-1;

注意递归出口:前段>后端(x>y),此时为0;

 递归算法最重要的是先明确函数的参数含义以及函数实现的功能。这题是实现在pos=x到pos=y这段字符要添加的最小字符数

还有数组保存递归结果的模板

#include<stdio.h>
#include<string.h>
#define min(a,b) (a<b?a:b)
char a[1001];
int f[1001][1001];
int dp(int x,int y)
{
	if(f[x][y]!=-1)
	return f[x][y];
	if(x>=y)
	{
		f[x][y]=0;
		return f[x][y];
	}
	if(a[x]==a[y])
	{
		f[x][y]=dp(x+1,y-1);
		return f[x][y];
	}
	f[x][y]=min(dp(x+1,y),dp(x,y-1))+1;
	return f[x][y];
}
int main()
{
	int N;
	scanf("%d",&N);
	while(N--)
	{
		scanf("%s",a);
		memset(f,-1,sizeof(f));
		printf("%d\n",dp(0,strlen(a)-1));
	}
	return 0;
}

 

南洋理工oj 37

标签:memset   amp   include   函数实现   函数   arp   模板   最小   fine   

原文地址:http://www.cnblogs.com/clanguageweaver/p/6710611.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!