贪心
文章平均质量分 67
小酒窝.
研一菜鸡一只,欢迎来交流讨论,一起进步!
展开
-
Perfect Flush(栈,贪心)
在这种判断方式下,所有拿过的数只会被判断一次,O(n),并且保证了所拿子序列字典序最小。但是如果对于每个位置都遍历之前拿过的数,复杂度是 O(n^2),需要优化。找到字典序最小的子序列,使得 1 ~ m 中的所有数出现且仅出现一次。保证对于 1 ~ m 中的所有数都会出现在这个数组中至少一次。可以用一个栈来实现上述判断,栈中依次存放要拿的子序列中的数。代码很简单,但是想清楚思路还是要花点时间的。从前往后对于每个位置来说,假设当前位置。判断了之前拿过的数,到当前位置。最终栈中元素就是所选子序列元素。原创 2023-01-03 17:48:46 · 570 阅读 · 0 评论 -
CF #781 - C. Tree Infection(贪心,二分)
除了第一秒,每次指定感染都能扩散感染一个节点,所以指定感染 x 次的话,就能扩散感染 x-1 个,sum 减去 x-1,然后对于剩下没感染的节点,每一秒钟可以感染两个,花费除 2 上取整秒。而现在每次操作 1 都可以作用于每个节点块,也就是说,假设一共有 x 个节点块,对于第 i 个进行指定感染的节点块,在 x 个节点块都被指定感染过之后,可以扩散感染 x - i 次。而 x 个节点块是肯定要指定感染的,就相当于第 i 个进行指定感染的节点块可以免费扩散感染 x-i 个节点。给定一棵树,根节点为 1。原创 2022-10-14 22:39:44 · 407 阅读 · 0 评论 -
杭电多校十 - Wavy Tree (贪心)
要变成偏高的位置,如果此时把 i+1 位置变低了,那么就是相当于给 i+2 位置更多生存的空间了,很可能其就不用操作就能满足比左右两边都大,所以就相当于节省了操作次数,这样就很贪心。一种是偶数位置都比奇数位置大,一种是偶数位置都比奇数位置小。场上想这道题的时候思维都是混乱的,一直想着怎么变才能让这个位置都大于两边的数或者都小于两边的数,然后这个数变过之后又会对后面的数产生影响,然后就不知道怎么变了。如果当前位置很小,而要变成比左右两个位置都大,那么此时不应该将当前位置 i 直接变成左右最大值+1,而是把。原创 2022-08-19 13:58:18 · 277 阅读 · 0 评论 -
XCPC真题 - Binary Tree —— 性质,贪心
题目链接题意:给出一个完全二叉树,顺序编号。每一点的权值为其编号。从根节点开始走,初始总和 sum 为0。每次可以选择左右儿子中的一个往下走,可以选择让 sum 减去其权值 或者 加上其权值。输出一条到第 k 层的路径,满足 sum 恰好为 N。1≤N≤1091 \leq N \leq 10^{9}1≤N≤109N≤2K≤260N \leq 2^{K} \leq 2^{60}N≤2K≤260分析:应该是完全二叉树的性质,满足一定存在这样的路径。但是从根节点往下走不好判断左右儿子走哪个,原创 2022-04-12 21:44:34 · 609 阅读 · 0 评论 -
CF 1623C. Balanced Stone Heaps(二分答案,贪心)
Linking大意:有 nnn 堆石子,每堆有 aia_iai 个。可以执行如下操作:从第 3 堆开始往后走,可以拿出当前堆 i 中的 3x3x3x 个石子 (0≤3x≤ai)(0≤3x≤a_i)(0≤3x≤ai),分给第 i−1i-1i−1 堆 xxx 个,第 i−2i-2i−2 堆 2x2x2x 个。问,如何选择每堆石子的移动个数,能够使得这 n 堆中石子个数最少的那堆,石子个数最大?思路:最小值最大,明显是二分答案。二分所有堆中的最小值,满足就向右走,使之最大。check,判断原创 2022-01-02 00:16:37 · 831 阅读 · 0 评论 -
Hamburger Steak(思维,贪心)
There is a ring of numbers consisting of 11 to nn sequentially. For every number ii (1 \leq i \leq n - 1)(1≤i≤n−1), ii and i+1i+1 are adjacent to each other. Particularly, nn and 11 are adjacent. We us原创 2021-08-02 23:44:39 · 120 阅读 · 1 评论 -
购物(贪心)
题目描述 你就要去购物了,现在你手上有N种不同面值的硬币,每种硬币有无限多个。为了方便购物,你希望带尽量少的硬币,但要能组合出1到X之间的任意值。输入格式第一行两个数X、N,以下N个数,表示每种硬币的面值。输出格式最少需要携带的硬币个数,如果无解输出-1.样例输入20 41 2 5 10输出5【数据规模】对于30%的数据,满足N≤3,X≤20;对于100%的数据,满足N≤10,X≤1000.起初没想到是贪心,用深搜做的,wa了好几次…还一个就是受之前做过的一道题的影响,总觉得思路原创 2021-02-25 17:33:37 · 681 阅读 · 0 评论 -
倒水(贪心)
原题链接Description一天,树树买了N个容量可以认为是无限大的瓶子,初始时每个瓶子里有 1 升水。树树发现瓶子实在太多了,于是他决定 保留不超过 K 个瓶子。每次他选择两个当前含水量相同的瓶子合并,把一个瓶子的水全部倒进另一个瓶,然后把空瓶丢弃(不能丢弃有水的瓶子)。显然在某些情况下树树无法达到目标比如N=3,K=1。此时树树会重新买一些新的瓶子(新瓶子容量无限,开始时有 1 升水),以达到目标。现在树树想知道,最少需要买多少新瓶子才能达到目标呢?Input一行两个正整数N,K(1≤N≤原创 2021-02-25 17:03:11 · 273 阅读 · 0 评论