UOJ Logo

NOI.AC

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#215533#46. deletedrdilyor2084ms1288kbC++1005b2025-04-04 14:12:292025-04-04 14:12:30

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;
	//vector<pair<int,int>> vct;
	for(int i=1;i<=n;i++){
		//如果想要成为答案
		if(a[i]<=i){
			//delete i-1~k prior.
			if(i-a[i]<=min(i-1,k)){
				//1到p删d个 
				vct[i]=i-a[i]+1;
				//vct.push_back({i-a[i],i-1});
			}
		} 
	}
	for(int i=1;i<=n;i++){
		if(vct[i]==-1)continue;
		dp[i]=1;
		for(int j=1;j<i;j++){
			//i-1 个删 vct[i]
			//j-1 个删 vct[j] 
			//j+1~i-1
			if(vct[j]!=-1&&vct[j]<vct[i]&&i-j>=vct[i]-vct[j]){
				dp[i]=max(dp[i],dp[j]+1);
			}
		}//cout<<i<<" "<<vct[i]<<" "<<dp[i]<<"\n"; 
	}
	cout<<*max_element(dp+1,dp+n+1); 
	return 0;
}

Details

小提示:点击横条可展开更详细的信息

Test #1:

score: 10
Accepted
time: 0ms
memory: 1168kb

input:

20 8
11 9 10 2 4 8 7 4 9 8 12 1 3 12 7 9 9 16 3 15

output:

4

result:

ok single line: '4'

Test #2:

score: 10
Accepted
time: 0ms
memory: 1168kb

input:

20 10
1 12 11 1 2 7 10 2 13 4 11 14 8 15 4 6 1 3 5 12

output:

4

result:

ok single line: '4'

Test #3:

score: 0
Wrong Answer
time: 0ms
memory: 1184kb

input:

500 150
7 2 11 5 1 13 10 10 14 20 20 2 5 17 14 4 5 5 3 2 2 7 10 3 18 2 7 3 5 15 2 8 5 14 3 1 1 4 19 ...

output:

33

result:

wrong answer 1st lines differ - expected: '27', found: '33'

Test #4:

score: 0
Wrong Answer
time: 0ms
memory: 1180kb

input:

500 233
8 16 14 3 7 1 14 15 11 8 4 11 13 6 5 18 2 11 10 5 7 3 14 2 7 16 6 5 14 1 13 6 9 7 9 5 5 6 2 ...

output:

36

result:

wrong answer 1st lines differ - expected: '26', found: '36'

Test #5:

score: 0
Wrong Answer
time: 44ms
memory: 1284kb

input:

5000 1666
15 23 11 4 10 16 24 9 10 10 9 14 7 3 1 22 4 8 7 18 3 24 19 6 2 16 2 5 7 10 6 12 1 6 18 9 6...

output:

133

result:

wrong answer 1st lines differ - expected: '120', found: '133'

Test #6:

score: 0
Wrong Answer
time: 40ms
memory: 1288kb

input:

5000 2333
2 28 15 6 10 2 10 10 26 7 8 16 3 1 15 17 11 7 8 2 8 2 6 3 4 13 6 20 13 18 3 6 24 1 5 26 18...

output:

136

result:

wrong answer 1st lines differ - expected: '120', found: '136'

Test #7:

score: 0
Time Limit Exceeded

input:

100000 23333
158 127 191 174 144 43 80 135 48 54 91 22 135 145 32 109 180 16 51 47 86 69 26 121 161 ...

output:


result:


Test #8:

score: 0
Time Limit Exceeded

input:

100000 55555
81 122 1 146 76 142 36 207 127 17 5 102 123 42 69 15 42 137 94 107 101 49 179 44 48 78 ...

output:


result:


Test #9:

score: 0
Time Limit Exceeded

input:

1000000 233333
536 132 387 278 660 779 239 1629 535 1641 1374 532 53 840 432 180 1457 232 494 580 61...

output:


result:


Test #10:

score: 0
Time Limit Exceeded

input:

1000000 666666
1053 405 264 292 1304 414 58 948 985 1112 865 1225 982 595 927 701 623 666 43 1019 43...

output:


result: