构图 -- F. DIY Garland
题目链接:https://codeforces.com/problemset/problem/1283/F
题意描述:
给定n−1条线和n座灯。
有一个灯是源灯,所有电都从这来。
一跟电线连接两个灯,每个灯有自己的编号,亮度为2i。
灯分为主灯和副灯,电源从主灯来,流向副灯。
每条电线的重要程度为切断这个电线之后不能通电的亮度之和。
按照电线的重要性从大到小给出了n−1条线的主灯编号,让你从大到小输出每条电线连接的两个灯的序号。
思路:
首先n−1条线和n座灯,可以确定这个结构是一棵树。
题目按照电线重要性给出了节点的主灯,那么第一个必然是源灯,因为连接源灯的电线重要性肯定最大。
其次叶子节点一定不是主灯,而且我们知道叶子节点的子树大小为0。(用deg数组记录子树大小)
所以我们可以先找出所有的叶子节点压入优先队列,之后倒序连接主灯。(因为电线的重要程度是从大到小给出的)。
连接之后将其看成一体,这样主灯子树大小就可以减一了。
当主灯的子树大小减为0时,就变成了叶子节点,加入队列;如此循环往复直到形成一棵树。
code:
#include<bits/stdc++.h>
using namespace std;
const int maxn = 2e5 + 10;
int deg[maxn], n, rt;
vector<int> main_lamp;
int main()
{scanf("%d", &n);scanf("%d", &rt);deg[rt]++;main_lamp.push_back(rt);for(int i = 2, x; i <= n - 1; i++){scanf("%d", &x);deg[x]++;main_lamp.push_back(x);}priority_queue<int, vector<int>, greater<int> > q;for(int i = 1; i <= n; i++)if(deg[i] == 0) q.push(i);vector<pair<int, int> > ans;while(q.size()){int x = q.top();q.pop();int y = main_lamp[main_lamp.size()-1];main_lamp.pop_back();ans.push_back(make_pair(y, x));if(ans.size() == n - 1) break;deg[y]--;if(deg[y] == 0) q.push(y);}cout << rt << endl;for(int i = ans.size()-1; i >= 0; i--)cout << ans[i].first << " " << ans[i].second << endl;return 0;
}
构图 -- F. DIY Garland相关推荐
- 主板芯片介绍---Via芯片组(三)
在"龙芯"出世以前,VIA就已经生产自家的CPU了:在INTEl,ATI,Nvidia芯片组在中国市场上"横冲直撞"时,VIA生产的芯片组不仅负起了狙击的作用, ...
- LB-createLB整理架构图-loadbalancer-openstack F版
2019独角兽企业重金招聘Python工程师标准>>> 感谢朋友支持本博客,欢迎共同探讨交流,由于能力和时间有限,错误之处在所难免,欢迎指正! 如有转载,请保留源作者博客信息. Be ...
- 深度学习、AI构图、智能裁图、显著性检测、美感质量评价
深度学习.AI构图.智能裁图.显著性检测.美感质量评价 基于美感数据集和改进的Alexnet-SPP的AI构图智能裁图 基于美感数据集和改进的Alexnet-SPP的显著性检测 部分代码下载地址:下载 ...
- Discuz常见大问题-如何DIY一个独立页面
首先参考Discuz如何自定义单个页面的文章,确保你已经能做一个"关于我们"这种纯HTML静态页面(只有文字和静态图片描述).其次参考下面的文件修改原来的htm文件 注意我用红色标 ...
- PXE BOOT DIY自己的网络启动工具集合
大家对深山红叶,矮人DOS工具箱之类的维护光盘应该不陌生了,作为企业,网吧网管,随手准备这样的光盘真的是能解决很多问题.对于网刻,相信很多人也有所了解.但是,在网吧/公司维护机器时.基本上面对的都是无 ...
- 怎么DIY一个粒子检测器
01在家带娃能干什么? 最初是在今日头天-大数据文摘(2020-09-28)看到一篇文章 在家做核子研究:怎么DIY一个粒子检测器 ,介绍了Steve Foster(一个刚刚退休英国中央银行 TI ...
- Micropython实例之TPYBoardv102开发板DIY照相机
2019独角兽企业重金招聘Python工程师标准>>> 摄像头(CAMERA或WEBCAM)又称为电脑相机.电脑眼.电子眼等,是一种视频输入设备,被广泛的运用于视频会议,安防系统 ...
- POJ-2391 Ombrophobic Bovines 网络流-拆点构图
题意:有F快草地,每块草地上有若干奶牛也有避雨点,每个避雨点只能够容纳一定量的奶牛.草地之间有边.现在问所有牛全部到达避雨点的时间是多少? 解法:这题和POJ-2112非常相似,做法也差不多,foly ...
- HDOJ 1224 Free DIY Tour
简单DP Free DIY Tour Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...
最新文章
- 用开放地址法中的线性探查法解决冲突实现哈希表的运算
- (四)系统虚拟化关键技术
- jquey(判断文本框输入的网址链接是否符合规则)
- 用python批量创建docker_「docker实战篇」python的docker-docker镜像的创建使用dockerfile(3...
- 小米键盘 键盘切换_“年轻人的第一把机械键盘”,小米机械键盘到底值不值...
- 电商如何“链”动新春,看聚划算助力“原年人”的好日子
- Python_列表2
- css中如何实现导航栏横向,css横向导航栏
- UltraEdit键盘快捷键
- [收藏学习]Openstack中Keystone及dashboard安装参考
- 安装SqlServer2014出现(‘无法启动 Windows Management Instrumentation 服务。若要继续安装,必须找到问题并修复该服务‘)
- Layui 表格table 第一次加载动态设置列
- Ascll完整码表(256个)
- python模拟火车票订票系统_除夕火车票明天开售,上海各大火车站售票时间都在这...
- Polarized 3D翻译
- 学计算机拼音摇号,电脑摇号:作弊100%!
- 用于商用微处理器的快速位收集、位分散和位置换指令(一)
- Linux中磁盘分区清理方法
- 论文阅读三:GHM《Gradient Harmonized Single-stage Detector》
- 今天给大家讲一个鬼故事