int p[maxn],used[maxn],vis[maxn],d[maxn],path[maxn];
int solve()//记录路径的LIS模板
{
int len=0;
for(int i=1;i<=n;i++){
int it=lower_bound(d,d+len,p[i])-d;
if(it==len){
d[len++]=p[i];
path[i]=len;
}
else{
d[it]=p[i];
path[i]=it+1;
}
}
for(int t=0;t<=n;t++){
used[t]=0;
}
// fill(used,used+maxn,0);
int tmp=len;
for(int i=n;i>0;i--){
if(path[i]==tmp){
used[p[i]]=1;
tmp--;
}
}
return len;
}
记录路径的LIS模板
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.