UOJ Logo

NOI.AC

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#215538#46. deletedrdilyorCompile Error//C++1.0kb2025-04-04 14:21:572025-04-04 14:21:59

answer

#include<bits/stdc++.h>
using namespace std;
#define int long long
int read(){
	int n=0,f=1;
	char ch=getchar();
	while(!isdigit(ch)){
		if(ch=='-')f=-1;
		ch=getchar();
	}
	while(isdigit(ch)){
		n=n*10+ch-'0';
		ch=getchar();
	}
	return n*f;
}
int n,k;
int a[1000005];
int vct[1000005];
int dp[1000005];
signed main(){
	n=read(),k=read();
	for(int i=1;i<=n;i++)a[i]=read(),vct[i]=-1;
	vct[0]=-1;
	vector<pair<int,int>> vc;
	for(int i=1;i<=n;i++){
		//如果想要成为答案
		if(a[i]<=i){
			//delete i-1~k prior.
			//i-a[i] 个 
			if(i-a[i]<=min(i-1,k)&&n-a[i]>=k){
				//1到p删d个 
				vct[i]=i-a[i];
				vc.push_back({i-a[i],i});
				//vct.push_back({i-a[i],i-1});
			}
		} 
	}
	sort(vc.begin(),vc.end());
	for(int i=0;i<(int)vc.size();i++){
		pair<int,int> it=vc[i];
		int d=it.first,pos=it.second;
		dp[pos]=1;
		for(int j=0;j<i;j++){
			if(pos-d>vc[j].second-vc[j].first){
				dp[pos]=max(dp[pos],dp[vc[j].second]+1);
			}
		}
	}
	cout<<*max_element(dp+1,dp+n+1); 
	return 0;
}

Details

answer.code: In function 'int main()':
answer.code:25:21: error: '>>' should be '> >' within a nested template argument list
  vector<pair<int,int>> vc;\x0d
                     ^
answer.code:34:17: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]
     vc.push_back({i-a[i],i});\x0d
                 ^
answer.code:34:28: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]
     vc.push_back({i-a[i],...