cf1214E
题意简述:构造一棵包含2*n个节点的树,要求2*i 和 2*i-1之间的距离等于d[i]<=n 1<=i<=n
给出N和d数组,输入对应的边
题解:对d数组按照从大到小排序,然后首先构造出一条链,1 - 3 - 5 -7 --- 2*n-1
然后一次将 2 ,4 。。 。 加进去,加进去的过程中维护最长的链
int d[maxn];
bool cmp(pair<int,int> x,pair<int,int> y){
return x.fi>y.fi;
}
int main(){
int n;
cin>>n;
vector<pair<int,int>> vv(n+1,{0,0});
for(int i=1;i<=n;i++){
cin>>vv[i].fi;
vv[i].se=i;
}
sort(vv.begin()+1,vv.end(),cmp);
for(int i=1;i<=n;i++){
d[i]=vv[i].se*2-1;
if(i!=1) cout<<d[i-1]<<' '<<d[i]<<endl;
}
int tot=n;
for(int i=1;i<=n;i++){
int y=vv[i].se*2;
int x=i+vv[i].fi-1;
if(x==tot) tot++,d[tot]=y;
cout<<d[x]<<' '<<y<<endl;
}
}
cf1214E的更多相关文章
- 构造——cf1214E
首先定义三元组(2*i-1,2*i,d),将n个三元组按d降序排列,然后取每个三元组的2*i-1连在一起,构成一条长为n-1的链 然后降序枚举每个三元组,把对应的2*i在链上合法的位置接上, 能保证一 ...
- CF1214E Petya and Construction Set题解
原来这就叫构造题,了 这道题的做法,我自己诌了一个形象的名字--"挂葡萄"法( 首先,"搭葡萄架":考虑到每个距离 \(d_i\) 只与 \(2i-1,2i\) ...
随机推荐
- vuede axios文件下载
this.loading = true; this.$http({ baseURL: CLOUD_BASE_SERVER_URL, url: '/audit/auditRun/ex ...
- C++ 自动类型推断
C++语言提供了自动类型推断的机制,用于简化代码书写,这是一种很不错的特性,使用auto和decltype都可以完成自动类型推断的工作,而且都工作在编译期,这表示在运行时不会有任何的性能损耗. 一.a ...
- sougn开源,自己写的一个项目
源代码:http://yun.baidu.com/share/link?shareid=1504480803&uk=2739888323 联系方式:1034465036@qq.com
- 【搞定面试官】- Synchronized如何实现同步?锁优化?(1)
前言 说起Java面试中最高频的知识点非多线程莫属.每每提起多线程都绕不过一个Java关键字--synchronized.我们都知道该关键字可以保证在同一时刻,只有一个线程可以执行某个方法或者某个代码 ...
- [xml]AttributeError: 'xml.etree.ElementTree.Element' object has no attribute 'getroot'
>>> import requests >>> res = requests.get("https://xxx.com/sitemap.xml" ...
- Why all application lack a kind of most really charm ?
Website and APP we used now are mostly web2.0 applications. While people practise in use, they can n ...
- 移动端H5优化
H5前端优化收藏的网址: https://zhuanlan.zhihu.com/p/25176904 http://tgideas.qq.com/webplat/info/news_version3/ ...
- 在centos6.3下安装php的Xdebug
首先下载一个xdebug http://www.xdebug.org/docs/ 官网上有windos版本和linux源码版本的,我们下载一个源码包xdebug-2.2.5.tgz 然后进入安装流程 ...
- CentOS安装了iRedMail停用Amavisd + ClamAV + SpamAssassin
转自:http://blog.sina.com.cn/s/blog_56ef54cf0100t0p3.html 可怜的我VPS内存资源有限,而邮件系统的防病毒功能很占内存. 如果希望停用杀毒和发垃圾的 ...
- 数据算法 --hadoop/spark数据处理技巧 --(3.左外连接 4.反转排序)
三. 左外连接 考虑一家公司,比如亚马逊,它拥有超过2亿的用户,每天要完成数亿次交易.假设我们有两类数据,用户和交易: users(user_id,location_id) transactions( ...