题目
思路
DP
代码
#include<cstdio>
#include<algorithm>
using namespace std;
int t,w,ans,a[1001],dp[1001][31];
int main()
{
scanf("%d %d",&t,&w);
for(int i=1;i<=t;i++)
scanf("%d",&a[i]);
for(int t1=0;t1<=t;t1++)
for(int w1=0;w1<=w && w1<=t1;w1++){
if(!w1) dp[t1][w1]=dp[t1-1][w1];
else dp[t1][w1]=max(dp[t1-1][w1],dp[t1-1][w1-1]);
if(1+w1%2==a[t1]) dp[t1][w1]++;
ans=max(ans,dp[t1][w1]);
}
printf("%d",ans);
return 0;
}