codeforces 675D Tree Construction set
Posted shuguangzw
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了codeforces 675D Tree Construction set相关的知识,希望对你有一定的参考价值。
转自:http://blog.csdn.net/qwb492859377/article/details/51447350
#include <stdio.h> #include <iostream> #include <algorithm> #include <string.h> #include <stdlib.h> #include <map> #include <queue> #include <set> using namespace std; typedef long long LL; const int INF=0x3f3f3f3f; const int N=1e5+5; typedef pair<int,int> pii; set<pii>s; int fa[N]; bool l[N],r[N]; int main(){ int n; scanf("%d",&n); set<pii>::iterator it1,it2; pii tmp; scanf("%d",&tmp.first),tmp.second=1; s.insert(tmp); for(int i=2;i<=n;++i){ scanf("%d",&tmp.first); tmp.second=i; it2=s.lower_bound(tmp); if(it2==s.end()){ it1=it2;it1--; fa[i]=(*it1).first; r[(*it1).second]=true; } else { if(it2==s.begin()){ fa[i]=(*it2).first; l[(*it2).second]=true; } else{ it1=it2;it1--; if(!r[(*it1).second]){ fa[i]=(*it1).first; r[(*it1).second]=true; } else{ fa[i]=(*it2).first; l[(*it2).second]=true; } } } s.insert(tmp); } for(int i=2;i<n;++i) printf("%d ",fa[i]); printf("%d\\n",fa[n]); return 0; }
以上是关于codeforces 675D Tree Construction set的主要内容,如果未能解决你的问题,请参考以下文章
codeforces 675D Tree Construction
Codeforces 675D Tree Construction Splay伸展树
CodeForces 593D Happy Tree Party