Placing Medals on a Binary Tree
https://vjudge.net/contest/175792#problem/G
题意:有一颗完全二叉树,深度从0至1e9,给出n个数字,分别代表把金属加到深度为a[n]的一个结点上,要求每个放有金属的结点,其通往根节点的路径上的所有结点,都不放有金属,依次放入n个金属,如果能成功放入,输出Yes,否则输出No。每次放金属都以最佳方案放置,比如尽可能放在左边,以能放置更多的结点。
做法:举个例子,放置了2之后,这颗树就不能再放置其他东西了,如果有放置了2个2,则以他们共同的父亲为根节点的子数都不能再放置东西,即2 + 2 = 1。以此向上推,当放入一个数使得出现0,此时还有比0大的数,则不能放置。而且,出现0之后,往后不能放置任何东西了。假设输入为4 4 4 4 4 4 4 4 1 4,则相当于(4),(3),(3,4),(2),(2,4),(2,3),(2,3,4),(1),(0),最后一个不能放。假设输入为2,3,1,1,4,2,则相当于(2),(2,3),(2,3,1),不能放,(2,3,1,4),不能放。
用set存放当前存在的数字(不会出现重复的数字,否则可以向上推),len表示从1开始连续存在到最大的那个数,maxn存当前集合中最大的数,当此时输入的数n小于等于len时,说明该数可以一直加到0,如果此时集合中有大于n的数,则它不能被合并,那么0的出现就是不合法的。如果集合中没有大于n的数,则可以合并所有的数,最后变为0。当输入n时集合中有0,则不能放置n。当n比len大,且在集合中存在时,则一直向上合并,最多能合并到len+1(最大连续长度为len,说明本身一定不存在len+1),合并的同时消除掉原本的那个数。如果集合中不存在n,则直接插入。记得更新maxn。
转载于:https://www.cnblogs.com/Sissi-hss/p/7275870.html
Placing Medals on a Binary Tree相关推荐
- Gym 101158G Placing Medals on a Binary Tree
题意:有一颗无穷大的满二叉树,每一次我们向树上的某一层的某个节点放置奖牌,奖牌排斥的条件为:从该节点到根的路径上无其他奖牌,如果能放置则放置,否则不放跳过,并且要按照输入的顺序放置,每次输出Yes或者 ...
- 107. Binary Tree Level Order Traversal II
题目 Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from l ...
- 102. Binary Tree Level Order Traversal
题目 Binary Tree Level Order Traversal 层次遍历二叉树 链接 Given a binary tree, return the level order traversa ...
- [Java]LeetCode297. 二叉树的序列化与反序列化 | Serialize and Deserialize Binary Tree
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...
- LeetCode刷题记录14——257. Binary Tree Paths(easy)
LeetCode刷题记录14--257. Binary Tree Paths(easy) 目录 前言 题目 语言 思路 源码 后记 前言 数据结构感觉理论简单,实践起来很困难. 题目 给定一个二叉树, ...
- 二叉树的路径(根节点到叶节点)Binary Tree Paths
为什么80%的码农都做不了架构师?>>> 问题: Given a binary tree, return all root-to-leaf paths. For example ...
- LeetCode - Maximum Depth of Binary Tree
递归求二叉树的最大深度. /*** Definition for binary tree* public class TreeNode {* int val;* TreeNode left;* Tre ...
- Balanced Binary Tree leetcode java
题目: Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced bin ...
- [leetcode] Binary Tree Preorder Traversal
Given a binary tree, return the preorder traversal of its nodes' values. For example: Given binary t ...
最新文章
- HK二分图最大匹配算法模板
- 【Prometheus】Exporter详解
- Java:网络编程值TCP的使用
- 2021年春季学期-信号与系统-第八次作业参考答案-第九小题
- c++ 多重背包状态转移方程_背包问题之零钱兑换
- android 8.0手机开服务端,Android 8.0 + Service开启方式兼容处理
- 嵌入式系统文件系统比较 jffs2, yaffs, cramfs, romfs, ramdisk, ramfs/tmpfs
- 增加新分类daily——“每天学了啥?”
- 如何在 Java 中正确使用 wait, notify 和 notifyAll?
- cmake编译时不能指定头文件路径?
- [转]JS弹出div和关闭
- 高亮插件Highlighting的使用
- Centos 7 Mysql 配置文件位置
- 一、Webservice的概念和原理
- wps右键失效_鼠标点击右键没有反应怎么办
- python 的statsmodels包,计算Wald tests
- windows 8 .1全家桶(很详细)
- java 正则表达式验证
- 报错:Error: The project seems to require yarn but it‘s not installed解决方案
- 蓝光影视媒体菜单结构浅析[原版加字幕保留花絮/主菜单/弹出菜单并分割对应PS3]...
热门文章
- HTTP Error 503 错误解决办法
- 手机设备号到底是什么?
- macos系统升级到big sur以后safari浏览器崩溃怎么办?
- 京东分布式数据库系统演进之路
- 【全民免费wifi上网权威软件】wifi共享精灵谈恋爱的4大境界
- 日常水文章之Linux+arm+阿里IOT sdk+Cmake
- 【STL】C++ STL超全总结
- 2022-08-08 第二小组 张明旭 Java学习记录
- BAPI_GOODSMVT_CREATE移库操作(WMS TO SAP)
- [总结自用]关于Mbps、Mb/s、MB/s以及Mpps的区别及计算