求助wa#2
查看原帖
求助wa#2
373738
rheinmetall楼主2023/10/2 15:01
#include<stdio.h>
#include<algorithm>
#include<iostream>
using namespace std;
int n,k;
int dp[1005][1005];
int a[1005];

int main()
{
	scanf("%d%d",&n,&k);
	for(int i=1;i<=n;i++)
	{
		scanf("%d",&a[i]);
	}
	a[0]=1;
	for(int i=0;i<=k;i++)
	{
		for(int j=1;j<=n;j++)
		{
			if(i==0)
			{
				if(a[j]==1)
				dp[i][j]=dp[i][j-1]+1;
				else
				dp[i][j]=dp[i][j-1];
				continue;
			}
			if(a[j]!=a[j-1])
			{
				if(i%2+1==a[j])
				dp[i][j]=max(dp[i-1][j-1]+1,dp[i][j-1]+1);
				else
				dp[i][j]=dp[i][j-1];
			}
			else
			{
				if(i%2+1==a[j])
				dp[i][j]=dp[i][j-1]+1;
				else dp[i][j]=dp[i][j-1];
			}
		}
	}
	printf("%d\n",dp[k][n]);
	/*for(int i=0;i<=k;i++)
	{
		for(int j=1;j<=n;j++)
		printf("%d ",dp[i][j]);
		printf("\n");
	}*/
	return 0;
}
2023/10/2 15:01
加载中...