CSP初赛复习-28-动态规划-练习题

PDF及答案公众号回复关键字:CSPC28

阅读程序

1

#include <iostream> 
using namespace std;
int main()
{
	const int SIZE = 100;
	int height[SIZE], num[SIZE], n, ans;
	cin>>n;
	for(int i=0;i<n;i++) 
	{
		cin>>height[i];
		num[i] = 1;
		for(int j=0;j<i;j++) 
		{
			if ((height[j]<height[i])&&(num[j]>=num[i]))
				num[i] =num[j]+1;
		}
	}
	ans=0;
	for (int i=0;i<n;i++)
	{
		if (num[i]>ans) ans=num[i];
	}
	cout<<ans<<endl;
}
/*
输入
6
2 5 3 11 12 4
输出
?
*/

2

#include <iostream>
using namespace std;
int lps(string seq,int i,int j)
{
	int len1,len2;
	if (i==j)
		return 1;
	if (i>j)
		return 0;
	if (seq[i]==seq[j])
		return lps(seq,i+1,j-1)+2;
	len1=lps(seq,i,j-1);
	len2=lps(seq,i+1,j);
	if(len>len2)
		return len1;
	return len2;
}
int main()
{
	string seq="acmerandacm";
	int n = seq.size();
	cout<<lps(seq,0,n-1)<<endl;
	return 0;
}

/*
输出
?
*/
posted @ 2023-08-13 16:28  new-code  阅读(167)  评论(0编辑  收藏  举报