poj 3671
不降子序列。
代码:
#include<iostream>
#include<fstream>
using namespace std;
int a[30001];
int n;
int b[30001];
int find(int s,int value){
int i=0,k;
while(i<=s)
{
k=(i+s)>>1;
if(b[k]>value) s=k-1;
else i=k+1;
}
return s;
}
void read(){
// ifstream cin("in.txt");
int i,j,k,m,m1;
cin>>n;
for(i=0;i<n;i++)
cin>>a[i];
m=0;
b[0]=a[0];
for(i=1;i<n;i++)
{
j=find(m,a[i]);
b[j+1]=a[i];
if(j+1>m) m=j+1;
}
cout<<n-m-1<<endl;
}
int main(){
read();
return 0;
}
浙公网安备 33010602011771号