WA on #16~20
查看原帖
WA on #16~20
768223
__XJN__楼主2022/12/4 14:04

洛谷上测170

都是第二问错误

拿4台电脑跟正解拍了几个小时都没拍出毛病,洛谷最后几个数据都把我第二问hack了

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

const int N=5e4+5;
int n=1,a[N],h[N],cnt=0,cn=0;
int f[N];//f[i]表示所有长度为i的单调不升子序列最后一项大小的最大值 
bool cmp(int,int);
int main(){
// 	freopen("test.in","r",stdin);
// 	freopen("test.out","w",stdout);
	f[0]=1e9;
	int* p;
	int go,mid;
	h[0]=0;
	while(cin>>a[n]){
		if(a[n]<=f[cn])f[++cn]=a[n];
		else{
			p=upper_bound(f+1,f+1+cn,a[n],cmp);
			*p=a[n];
		}
		if(a[n]>h[cnt])h[++cnt]=a[n];
		else{
			p=lower_bound(h+1,h+1+cnt,a[n]);
			*p=a[n];
		}
		n++;
	}
	cout<<cn<<'\n'<<cnt<<'\n';
	return 0;
}
bool cmp(int x,int y){return x>y;}

求小数据hack,或有大佬帮我看一下哪里错了

2022/12/4 14:04
加载中...