为什么o(n^2)做法前50%数据也会TLE?
查看原帖
为什么o(n^2)做法前50%数据也会TLE?
685171
mummummuu楼主2023/7/17 11:01

不是前100分可以用o(n^2)做法吗

//lgB3637 
#include <bits/stdc++.h>
using namespace std;

int num[1000010],dp1[1000010],dp2[1000010],maxn1=0,maxn2=0;

int main(){
	int n=1;
	while (1){
		scanf("%d",&num[n]);
		if (cin.get()=='\n')break;
		n++;
	}
	for (int i=1;i<=n;i++){
		dp1[i]=1;dp2[i]=1;
		for (int j=1;j<i;j++){
			if (num[j]<num[i]){
				dp2[i]=max(dp2[i],dp2[j]+1);
			}
			if (num[j]>=num[i]){
				dp1[i]=max(dp1[i],dp1[j]+1);
			}
		}
		if (dp1[i]>maxn1)maxn1=dp1[i];
		if (dp2[i]>maxn2)maxn2=dp2[i];
	}
	printf("%d\n%d",maxn1,maxn2);
	return 0;
}

2023/7/17 11:01
加载中...