![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
贪心
Ghostkkkk
这个作者很懒,什么都没留下…
展开
-
Gym - 101291I Mismatched Socks 贪心
题意: n个不同颜色,每种颜色有a[i]个 ,问:不同颜色间两两配对,最多能配对多少对? 思路: 设maxn为a[i]的最大值,sum为a[i]的和。 贪心的想,如果maxn*2>sum,那么我们用其他颜色全部去和maxn的颜色配对是最好的。如果maxn*2 代码: #include #include #include #include #include #i原创 2017-09-16 00:34:47 · 541 阅读 · 0 评论 -
ACM-ICPC 2017 Asia Qingdao J. Suffix 二分 HASH LCP
https://nanti.jisuanke.com/t/18520 题意: 给你n个字符串,你需要依次从每个字符串选一个后缀拼接起来,问字典序最小的串是什么? 题解: 贪心从后往前看,最后一个串一定选择字典序最小的后缀,然后把这个后缀拼接到第n - 1个串,重复这个步骤就行了。 具体实现: 从后往前遍历,每次找当前串的最小后缀,这个可以对于当前下标和当前最小后缀下标二分+hash找到...原创 2018-10-09 17:12:44 · 647 阅读 · 0 评论 -
牛客国庆集训派对Day6 - F kindom DP
链接:https://www.nowcoder.com/acm/contest/206/F 来源:牛客网 题目描述 X王国有n位官员,编号从1到n。国王是1号官员。除了国王以外,每个官员都有一个上司。我们称这个官员是这个上司的下属。上司的编号总比下属小。 我们定义一个官员的影响力为他所有下属的影响力之和再加1。例如,一个没有下属的官员的影响力是1。国王的影响力总是n。 任何一位有下属的官员...原创 2018-10-08 17:58:39 · 148 阅读 · 0 评论 -
CF 875E - Delivery Club 思维 二分
题意: 有两个人要送外卖,起始位置分别是s1, s2。他们要合作送完一些地点。只能按照题目的顺序送。每个地点可以让任意一个人去,另外一个人原地等待。 现在问他们最大距离的最小值是多少呢? 题解: 看到最大最小想到二分。 怎么check呢? 设mid是当前的限制距离。 我们发现对于任意一个状态(目前第一个人在x点,第二个人在y点) 都要满足abs(x - y) <= mid。 ...原创 2018-09-10 19:40:54 · 183 阅读 · 0 评论 -
CF 888G - Xor-MST 分治 贪心 字典树 启发式合并
题意: 给你一个n个数,每两个数之间边的权值是a[i] ^ a[j]。 问最小生成树大小。 题解: 最小生成树可以用kruskal思想。(其实应该是Boruvka算法,这里记录一下) 每次选择最小的边。 我们建立一颗01字典树,那么很明显对于一颗子树内的点,他肯定也是连这个子树内的点最好,然后每个子树就会构成一个联通块,去连一条最小的边到兄弟子树,如此递归。 相当于每次把两颗子树合并...原创 2018-09-17 21:35:39 · 288 阅读 · 0 评论 -
CF 965E Short Code 贪心 字典树 启发式合并
题意: 给你N个字符串,每个字符串可以缩写为他的前缀,但是必须保证所有串缩写后不重复,并且最后总长度最小。 题解: 先建立字典树,然后我们可以想到,在dfs的时候,如果当前节点本来没有串,那么他可以存他子树中某个串,我们用优先队列找到他子树的最长的节点,然后把这个节点代表的串用当前节点串代替,这样贪心即可。 但是对于每颗子树都要建立一个优先队列存他子树中所有的串长。对于这点我们可以用启发式...原创 2018-09-06 21:35:30 · 159 阅读 · 0 评论 -
CF 980E - The Number Games 贪心 倍增
题意: 给你一颗无根树,每个点的权值是2^i,你要从中删除k个点,使得最后剩下的权值最大,并且是联通的。 题解: 反方向考虑保留n - k个点。 由于保留一个i要比保留所有小于i的节点的和都大,所以我们贪心的保留n, n-1, n-2..... 我们以n为根节点建树,然后从n - 1遍历到1, 对于节点i,如果他到已经保留的节点的距离小于剩下可以保留的点数,则保留他们,否则跳过。这样我们...原创 2018-09-06 19:01:40 · 167 阅读 · 0 评论 -
CF 981F - Round Marriage 二分答案 思维 环
题意: 有n个新郎和n个新娘要一一配对,他们的位置都在环上,距离原点分别为a[i], b[i]。 现在问要一一匹配的话,所有匹配的距离最大值最小能多少? 题解: 二分答案。 怎么check呢? 如果是一条链就容易check多了。 对于每个匹配,距离是,对于第二种拆开看又可以化成或是。这样我们可以把b[j]拆成b[j],b[j] + L, b[j] - L,这三个点,就断环为链了。 ...原创 2018-09-15 23:50:20 · 226 阅读 · 0 评论 -
CF 1029E Tree with Small Distances 树形DP or 贪心
题意: 给你一颗树,问你要使1号节点到所有节点的距离不超过2,最少添加多少边? 题解: 显然添加的边肯定连1好。 利用树形DP。 我们设dp[i][j]为i号节点到1的距离为j,并且i号节点的子树都满足要求的最少边数。 这样dp[n][2]即可, dp[i][1] = (i == 1 || par == 1 ? 0 : 1) 但是dp[i][2]有两种情况,一种是i节点经过父亲再到...原创 2018-09-05 20:16:54 · 181 阅读 · 0 评论 -
CF 938F Erasing Substrings DP 贪心
题意: 给你一个字符串S,你需要执行次操作,每次删除一个长度为2^(i-1)的子串。问最后字典序最小是多少。 题解: 最后一定剩余|S| - 2^k + 1长度的串,从前往后考虑,我们对当前的字符,一定要越小越好。 这样我们可以定义一个状态dp[i][j]表示当前删除了j个字符,还剩下i个字符的最小字符串。 但是我们发现没有必要这么做,因为当前如果不是长度为i的最优的串,那么就没用了。 ...原创 2018-09-07 23:51:56 · 298 阅读 · 0 评论 -
865D - Buy Low Sell High 贪心 想法
题意 有N天,每天股票有一个价格p[i]。 第i天你可以有三种选择。 1.买一支股票。 2.卖一支股票。 3.什么也不干。 问最后能获得的最大收益。 题解 什么也不干可以转换为当天买当天卖。 由于a-b + b - c等价于a - c,我们可以引出中转站思想。 可以假设每天都卖了股票,然后把-p[i]入队两次。 第一次被弹出表示作为中转站。 第二次被弹出则表示卖出。 ...原创 2018-08-25 19:55:15 · 213 阅读 · 0 评论 -
Wannafly挑战赛26 B.冥土追魂 贪心
链接:https://www.nowcoder.com/acm/contest/212/B 来源:牛客网 题目描述 有一天 Misaka 和 Kuroko 在玩一个关于冥土追魂的游戏.... Misaka和Kuroko在一个 n x m 的棋盘上玩游戏,每个格子上都放着一些呱太。游戏共进行 k 回合,每一回合 Kuroko会选**有呱太**的一行 i,在这之后Misaka会选择一列 j ,...原创 2018-10-17 20:10:45 · 212 阅读 · 1 评论