标签:lan https 子序列 target i++ printf codeforce cto title
原题链接
考察:线性dp or 枚举
大佬的思路:
??0不能出现在1的右边,所以是单调非下降子序列,求最长即可.
本菜狗的思路:
??枚举每一个1的位置,求保留前面所有0和后面所有1的长度,取最长即可.
#include <iostream>
#include <cstring>
#include <vector>
using namespace std;
const int N = 110;
int n,a[N];
vector<int> v;
void solve()
{
int ans = n-v.size();//只保留0
for(int i=0;i<v.size();i++)
{
int j = v[i];//第i+1个1的位置
ans = max(ans,j-i+(int)v.size()-i-1);
}
printf("%d\n",ans);
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
if(a[i]) v.push_back(i);
}
solve();
return 0;
}
Curriculum Vitae CodeForces - 846A
标签:lan https 子序列 target i++ printf codeforce cto title
原文地址:https://www.cnblogs.com/newblg/p/14869980.html