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\) ...
随机推荐
- Arduino系列之按键模块(二)
上一节简单介绍啦一下按键模块怎么使用 但是在使用过程中会常常出现延时时间过长,有时候按键会失灵 所以,接下来,我将优化程序,使得按键按下时,就能使count加1 下面是程序思路:同样的定义按键脚: 定 ...
- 【转载】计算机程序的思维逻辑 (8) - char的真正含义
看似简单的char 通过前两节,我们应该对字符和文本的编码和乱码有了一个清晰的认识,但前两节都是与编程语言无关的,我们还是不知道怎么在程序中处理字符和文本. 本节讨论在Java中进行字符处理的基础 - ...
- eclipse运行python 安装pydev 版本匹配问题
Eclipse 4.5, Java 8: PyDev 5.2.0 PyDev 5.2.0 版本路径:https://dl.bintray.com/fabioz/pydev/5.2.0 1.安装时注意: ...
- POJ_1166_暴搜
题目描述: 有3*3的9个时钟,每个始终有0,1,2,3四种可以循环的状态码,每组数据给我们9个时钟的一种状态码.另外还有9种操作,分别使指定位置的时钟状态码加一,求使得9个时钟状态码全部置于0的最少 ...
- Android Studio MainActivity中的R为红色
csdn解决链接 https://blog.csdn.net/M283592338/article/details/79880413
- JS中map与forEach的区别
很多同学可能对于map与forEach的区别不是太了解,今天我们介绍一下JS中的map与forEach方法, 我对map的理解是,这个方法对一个数组arr1中的每一个元素进行遍历(传递给一个数组,参数 ...
- 2、HotSpot虚拟机对象探秘
基于使用优先的原则,以常用的虚拟机HotSpot和常用的内存区域Java堆为例,深入探讨HotSpot虚拟机在Java堆中对象分配.布局和访问的全过程. 1.对象的创建 划分可用空间 在语言层面上,创 ...
- Java DTO(data transfer object)的理解
首先明白springboot每层 model层 model层即数据库实体层,也被称为entity层,pojo层. 一般数据库一张表对应一个实体类,类属性同表字段一一对应. Model层是数据层: Ta ...
- Python socket 基础(Client) - Foundations of Python Socket
Python socket 基础- Foundations of Python Socket 建立socket - establish socket import socket s = socket. ...
- Xcode11: 删除默认Main.storyBoard, 自定义UIWindow的变化 UIWindow 不能在AppDelegate中处理
Xcode自动新增了一个SceneDelegate文件,查找了一下官方文档WWDC2019:Optimizing App Launch 发现,iOS13中appdelegate的职责发现了改变: iO ...