【POI每日题解 #8】DYN-Dynamite】的更多相关文章

你问蒟蒻为什么一天写两篇每日题解? 难道每日坚果你不能一天吃两包吗? 题目链接 哇…这道题第一反应就是二分答案[太明显了 枚举答案 就那个“关键节点到这些点中距离的最小值的最大值”[蒟蒻读了好几遍…… 若枚举到mid 则判定答案为mid时,覆盖所有特殊点的最少点数能否不超过m 嗯 这很点分治 对于一个子树 我们要处理到它里面没有没被覆盖的点 或者有到该子树根距离小于mid的[它可以放在以后解决 那什么时候要选点呢? 自然是上面两个条件都不满足的时候 也就是离子树根最远的未被覆盖特殊点到子树根的距…
题目链接 这道题第一眼看去类比BANK-Cash Dispenser 不过1e6 * 1e6 = 1e12   分分钟MLE啊 想到优化 就yy到一种近似主席树的做法 来维护类似BANK的一堆序列 开心地打完 然鹅 MLE 陷入沉思 对一个值 有三种取得方式 一 存储 二 查找 三 推导 我们需要知道一个数后的另一个数在哪里 前者的最优方式已经凉了[或许有更优?请路过神犇指教 三看起来好像不大可行... 那就二吧 但线性查找肯定凉的 想到log级优化 Log + 查找 = 二分查找啊 但是原数列…
题目链接 题意: 有一棵环套树 求最少从多少个节点出发能沿边走过整棵树 环套树 并查集求联通块 有几块就砸几个 太简单不发代码了 不过某大佬的环套树找环dfs让我研究了好久… 贴一下以Orz #include<iostream> #include<cstdio> using namespace std; ; int vis[MAXN],pa[MAXN]; int n,ans; inline void dfs(int x,int type) { ) { ) { ++ans;//新环…
题目链接 : [POI2006]KRA-The Disks 好有既视感啊... 注意一下输入输出 输入是从上到下输入箱子的宽度 输出是最上面的积木停在哪一层 即 箱子高度 - 积木高度 + 1 在初始情况下 对于一层 我们只需要它上面所有层中宽度最小的那层 于是维护这样的一个数列 对于一个插入的值 如果它比前一个数小 那么直接插入 否则插入前一个数的值 比如示例数据 (第i + 1行为插入a[i]后的结果) 5 6 4 3 6 2 3 5 5 5 5 5 4 5 5 4 3 5 5 4 3 3…
题目链接 [POI2005]DWU-Double-row wwwww 之前写了半小时 一卡机 没啦QAQ 简单说一下吧 [吐血ing 这道题长得好二分图啊 所以本能地连边 一种是A边 连可交换的数对 一种是B边 连相同的数字 然后才看题干[Facepalm 发现要求使同一侧没有重复颜色的最小交换次数 然后发现 AB都连上仿佛可做 由于最多两个相同数字 数对也是一对一 每一条长度连起来大于1的路都是A-B-A-B…… 不在一个联通快里的点没有相互影响 现在考虑同色同侧 只有这种情况 边的起点和终点…
[POI2008]MAF-Mafia 很容易看出是拓扑 但不容易想出来怎么做[可能是我太菜 首先 入度为零的人是肯定死不了的 接着 我们分成环和链分析 对于一个链 最多的情况就是顺着一个个开枪 最后剩一个( (n - 1) -> (n), (n - 2) ->(n - 1) …… ) 最少的情况就是死一半(1->2, 3->4……) 对于一个环 它和链基本上一样 区别在于从任何一个人开始都不会影响结果 这个性质很有用 因为当有环接在链上时 最多的情况下环上的点会全部挂掉 void…
[POI 2008&洛谷P3467]PLA-Postering Description Byteburg市东边的建筑都是以旧结构形式建造的:建筑互相紧挨着,之间没有空间.它们共同形成了一条长长的,从东向西延伸的建筑物链(建筑物的高度不一). Byteburg市的市长Byteasar,决定将这个建筑物链的一侧用海报覆盖住.并且想用最少的海报数量,海报是矩形的. 海报与海报之间不能重叠,但是可以相互挨着(即它们具有公共边),每一个海报都必须贴近墙并且建筑物链的整个一侧必须被覆盖(意思是:海报需要将一…
我也不知道为啥我就想把POI的题全都放到一篇blog里写完. POI 2005 SAM-Toy Cars 贪心,每次选下次出现最晚的. POI 2006 KRA-The Disks 箱子位置单调,所以记录现在的箱子位置和前缀最小值,向上枚举就行. OKR-Periods of Words 戳这 POI 2007 OSI-Axes of Symmetry 戳这 MEG-Megalopolis 树剖 or dfs序上维护前缀和. POI 2010 GIL-Guilds 按照洛谷的题面,可以发现灰点就…
LeetCode 题号739中等难度 每日温度 题目描述: 根据每日 气温 列表,请重新生成一个列表,对应位置的输入是你需要再等待多久温度才会升高超过该日的天数.如果之后都不会升高,请在该位置用 0 来代替. 例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]. 提示:气温 列表长度的范围是 [1, 30000].每个气温的值的均为华氏度,都是在 [30, 100] …