https://codeforces.com/contest/977/problem/F
这世上根本就没有dp,又或者万物皆可dp
对于dp,自己太过于死板了,而dp又太灵活,等等,快跟不上你的脚步(⊙﹏⊙)
这道水题没什么想说的,追逐的dp太过虚无缥缈,所以思路要开阔啊。。。
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<vector>
#include<set>
#include<map>
#include<queue>
#include<cmath>
#define ll long long
#define mod 1000000007
#define inf 0x3f3f3f3f
using namespace std;
#define ll long long
using namespace std;
int a[200005];
int main()
{
int n;
cin>>n;
map<int, int> m;
int maxy = -1;
int maxy1 = -1;
for(int i = 1; i <= n; i ++)
{
cin>>a[i];
int tmp = a[i];
m[tmp] = m[tmp-1] + 1;
//maxy = max(maxy, m[tmp]);
if(m[tmp] > maxy)
{
maxy = m[tmp];
maxy1 = tmp;
}
}
cout<<maxy<<endl;
bool first = 1;
int beg = maxy1 - maxy + 1;
for(int i = 1; i <= n; i ++)
{
if(a[i] == beg && first){
cout<<i;
first = 0;
beg ++;
}
else if(a[i] == beg && ! first)
cout<<' '<<i, beg ++;
}
cout<<endl;
return 0;
}