为什么死循环?
查看原帖
为什么死循环?
1252442
lucy2012楼主2024/5/25 19:03

QwQ,rt

#include<bits/stdc++.h>
using namespace std;
int a[100010],dp[100010],n,ans; 
int main(){
	int x;
	while(cin>>x)
	    a[n++]=x;
	n=n-1;
	dp[0]=0x7ffffff;
	for(int i=1;i<=n;i++){
		int l=0,r=i,k=a[i];
		ans=0;
		while(l<r){
			int mid=(l+r)/2;
			if(dp[mid]>=k)
			    l=mid+1;
			else{
				ans=mid;
				l=mid-1;
			}
		}
		dp[ans]=k;
	}
	int num;
	for(num=1;num<=n;num++){
		if(dp[num]==0) break;
	}
	cout<<num-1<<endl;
	dp[0]=0;
	for(int i=1;i<=n;i++)
	    dp[i]=0x7fffffff;
	for(int i=1;i<=n;i++){
		int l=0,r=i,k=a[i];
		while(l<r){
			int mid=(l+r)/2;
			if(dp[mid]<k)
			    l=mid+1;
			else{
				ans=mid;
				r=mid-1;
			}
		}
	}
	for(num=0;num<=n;num++){
		if(dp[num]==0x7fffffff)
		    break; 
	}
	cout<<num-1;
	return 0;
}
2024/5/25 19:03
加载中...