南洋理工oj 37

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了南洋理工oj 37相关的知识,希望对你有一定的参考价值。

技术分享

思路:

输入字符串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的主要内容,如果未能解决你的问题,请参考以下文章

南洋理工大学 ACM 在线评测系统 矩形嵌套

Singapore_Day4

科研一对一 | 南洋理工大学 | 机器学习计算机科学:隐私保护的机器学习机制研究

一举打败16个同类模型,视频超分比赛冠军算法入选CVPR 2022,来自商汤&南洋理工大学...

山东理工大学SDUT - ACM OJ 题: Python代码 及分析

哈理工 OJ 2301 行编辑器(java)