P1020,92分,求调,悬关!
  • 板块灌水区
  • 楼主fbcxxg
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/8/13 19:44
  • 上次更新2024/8/13 21:32:06
查看原帖
P1020,92分,求调,悬关!
1053141
fbcxxg楼主2024/8/13 19:44
#include<bits/stdc++.h>
using namespace std;
const int maxn=100050;
int a[maxn],dp[maxn],s[maxn],n=0,k,ans;
int main(){
    ios::sync_with_stdio(0);
    while(cin>>k){
    	a[n++]=k;
	}
    for(int i=1;i<=n;++i){
        dp[i]=1;
        int l=0,r=ans+1;
        while(r-l>1){
            int mid=(l+r)>>1;
            if(s[mid]>=a[i]){
                l=mid;
            }else{
                r=mid;
            }
        }
        dp[i]=l+1;
        s[dp[i]]=a[i];
        ans=max(ans,dp[i]);
    }
    cout<<ans<<endl;ans=0;
    memset(s,0,sizeof(s));
    for(int i=1;i<=n;++i){
        dp[i]=1;
        int l=0,r=ans+1;
        while(r-l>1){
            int mid=(l+r)>>1;
            if(s[mid]<a[i]){
                l=mid;
            }else {
                r=mid;
            }
        }
        dp[i]=l+1;
        s[dp[i]]=a[i];
        ans=max(ans,dp[i]);
    }
    cout<<ans<<endl;
    return 0;
}

咋改都是92分,二分就不配拿满分吗:(

谢谢大佬调试。

2024/8/13 19:44
加载中...