51nod1380 夹克老爷的逢三抽一】的更多相关文章

问题等价于选出$n / 3$个不相邻元素是权值和最大 这是一个经典贪心问题,同种树,拿堆维护即可,复杂度$O(n \log n)$ #include <queue> #include <cstdio> #include <cstring> using namespace std; extern inline char gc() { ], *S = RR + , *T = RR + ; , , stdin), S = RR; return *S ++; } inline…
1380 夹克老爷的逢三抽一 基准时间限制:1 秒 空间限制:131072 KB 分值: 320 难度:7级算法题  收藏  取消关注 又到了诺德县的百姓孝敬夹克大老爷的日子,带着数量不等的铜板的村民准时聚集到了村口. 夹克老爷是一位很"善良"的老爷,为了体现他的仁慈,有一套特别的收钱的技巧. 1.让所有的村民排成一队,然后首尾相接排成一个圈. 2.选择一位村民收下他的铜钱,然后放过他左右两边的村民. 3.让上述三位村民离开队伍,并让左右两边的其他村民合拢起来继续围成一个圈. 4.重复…
传送门 •参考资料 [1]:51Nod-1380-夹克老爷的逢三抽一 •题意 从长度为 n 的数组中抽取 $\frac{n}{3}$ 个不相邻的值使得加和最大(首尾也不能同时取) •题解 贪心选择当前最大值 $a_{max}$,同时删掉包含 $a_{max}$ 在内的其左($a_l$)和其右($a_r$) 这三个数: 但是,还有一种可能是 $a_l + a_r > a_{max}$,那么,我们就需要选择 $a_l,a_r$ 这两个数,而不选择 $a_{max}$ 这个数: 所以,我们还需要将 $…
Description 一开始有一个环,可以选择删除一个元素获得他的权值,同时删除与它相邻的两个元素,其他元素重新形成环,问能获得的最大价值. Sol 堆+贪心. 一开始从堆中加入所有元素,然后取出一个元素之后,加入他两边的元素之和-该位置的权值,并把左右两点删除. 一直到取出 \(\frac {n} {3}\) 个元素即可,左右元素可以用链表维护. 这样取出一个元素了以后可以进行反悔的操作,获得另外两个权值. xyx大爷说只要不相邻那么元素个数使得他必然有一种合法的删除方案. Code #in…
1378 夹克老爷的愤怒 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题  收藏  取消关注 夹克老爷逢三抽一之后,由于采用了新师爷的策略,乡民们叫苦不堪,开始组织起来暴力抗租. 夹克老爷很愤怒,他决定派家丁常驻村中进行镇压. 诺德县 有N个村庄,编号0 至 N-1,这些村庄之间用N - 1条道路连接起来. 家丁都是经过系统训练的暴力机器,每名家丁可以被派驻在一个村庄,并镇压当前村庄以及距离该村庄不超过K段道路的村庄. 夹克老爷一贯奉行最小成本最大利润的原则,…
package com.hanqi.count; // 逢三退一 输出留到最后值的索引; public class Count1 { //主方法 public static void main(String[] args) { Count1 c = new Count1(); System.out.println(c.count(6)); // 方法有返回值 , 传入数组长度(总共多少数); } // 逢3 退1; public int count (int in) { //声明一个boolea…
Description 一棵树,可以进行染色,被染色的点可以控制与它距离不超过 \(k\) 的所有点,问控制整棵树最少需要染几个点. Sol 贪心. 记录一下最深的未染色点和最浅的染色点,判断一下能否在子树中就完成,不能的话就把权值赋成最深未染色点深度+1,能的话就赋成染色点深度+1. 需要特判一下根. Code #include<cstdio> #include<vector> #include<ctime> #include<cstdlib> #incl…
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1378 题意: 思路:要想放得少,尽量放在叶子节点处,叶子节点处点比较多. 从叶子节点开始往上回溯,到第k个点时就放置一名家丁,用dp[x]来记录状态,若为负,则表示该节点及其子树所需要家丁的最远距离,若为正,则表示该节点及其子树中家丁还能镇压的最大距离. #include<cstdio> #include<cstring> #include<algo…
胡小兔的 OI 日志 3 (2017.9.1 ~ 2017.10.11) 标签: 日记 查看最新 2017-09-02 51nod 1378 夹克老爷的愤怒 | 树形DP 夹克老爷逢三抽一之后,由于采用了新师爷的策略,乡民们叫苦不堪,开始组织起来暴力抗租. 夹克老爷很愤怒,他决定派家丁常驻村中进行镇压. 诺德县 有N个村庄,编号0 至 N-1,这些村庄之间用N - 1条道路连接起来. 家丁都是经过系统训练的暴力机器,每名家丁可以被派驻在一个村庄,并镇压当前村庄以及距离该村庄不超过K段道路的村庄.…
今天,我们要讲的是数据结构与算法中的队列. 队列简介 队列是什么?队列是一种先进先出(FIFO)的数据结构.队列有什么用呢?队列通常用来描述算法或生活中的一些先进先出的场景,比如: 在图的广度优先遍历中,我们需要使用队列来记录每个节点的相邻节点,以便可以在接下来最先访问它们,从而实现广度优先遍历. 在 JavaScript 事件循环(Event Loop)中有一个事件队列(Task Queue),也是先进先出来处理各种异步事件. 在生活中,队列可以映射排队打饭等先来后到的场景. 用 JavaSc…