随笔分类 -  贪心

摘要:#题意 rt #思路 删除所有可删的$s_i$,其中$s_i>s_{i+1}$ 这个过程可以用栈解决 由于题目要求每个出现的字符出现在答案中一次 所以要维护某字符是否在栈中,以及之后是否还有这个字符 #代码 class Solution { public: string smallestSubseq 阅读全文
posted @ 2021-01-05 22:42 wrjlinkkkkkk 阅读(108) 评论(0) 推荐(0)
摘要:题意 在一颗有点权的树上,选若干个点,使得这些点两两距离大于k,且点权和最大 思路 贪心的取比较大的值即可 将所有点按照深度从大到小排序,如果当前点点权$a[i]$大于0,则将距离为k以内的所有点减$a[i]$ 代表取了当前点,为答案贡献$a[i]$ 如果下面又扫到大于零的点权,说明那个点比这个大, 阅读全文
posted @ 2019-10-23 15:01 wrjlinkkkkkk 阅读(666) 评论(2) 推荐(0)
摘要:题意 给你一个长度为n的数组,代表每一个物品的价格。你有一个初始钱数$x$,采用以下方法贪心: 从$1$到$n$扫一遍,如果$x$不比$a[i]$小,就买下它,买不起就跳过。 给你最终买的物品数量m,求$x$的最大值。 思路 我队的贪心菜的一笔,果然我也有很大的责任。。 首先如果最后全部买完,那么刚 阅读全文
posted @ 2019-09-20 22:29 wrjlinkkkkkk 阅读(197) 评论(0) 推荐(0)
摘要:题意: 给你一张有向图,问你最少加多少条边这张图强连通 思路: 缩点之后,如果不为1个点,答案为出度为0与入度为0的点的数量的最大值 代码: 阅读全文
posted @ 2019-06-05 21:25 wrjlinkkkkkk 阅读(271) 评论(0) 推荐(0)
摘要:题意: 最多能选几条不重叠的线段 思路: 按R从小到大排序,维护一个最大的右端点 右端点最小的那个线段是必选的,可以贪心地证明 代码: 阅读全文
posted @ 2019-02-27 00:02 wrjlinkkkkkk 阅读(181) 评论(0) 推荐(0)
摘要:题意: 求两条线段的最大重叠 思路: 按照l升序,r降序排列 维护最大的r 代码: 阅读全文
posted @ 2019-02-24 23:33 wrjlinkkkkkk 阅读(263) 评论(0) 推荐(0)
摘要:题意: m次询问,问下标最小字典序的长度为x的LIS是什么 n<=10000, m<=1000 思路: 先nlogn求出f[i]为以a[i]开头的LIS长度 然后贪心即可,复杂度nm 我们正常求LIS处理出的low[i]为长度为i的LIS结尾最小元素,f[i]为以a[i]结尾的LIS长度 为了迎合题 阅读全文
posted @ 2018-12-18 16:20 wrjlinkkkkkk 阅读(166) 评论(0) 推荐(0)
摘要:题意:n个塔,第i个塔由$h_i$个cube组成,每次可以切去某高度h以上的最多k个cube,问你最少切多少次,可以让所有塔高度相等 k>=n, n<=2e5 思路:差分统计每个高度i有的方块数nh[i],然后从高到低贪心的切就行了 代码: 阅读全文
posted @ 2018-10-12 19:57 wrjlinkkkkkk 阅读(375) 评论(0) 推荐(0)
摘要:题意: m个坑,n天,起初每个坑都是满的,每天至多有一个坑会下雨,下雨就会满,满了再下就输出no。 在没有雨的时候可以安排龙来喝水,把坑喝空,可行的话输出龙喝水的方案 思路: 边读入边操作,set保存下来所有没有雨的日子。对每一个有雨的日子,找离上一次满水的日子最近的一次没雨的日子,在这个日子喝掉这 阅读全文
posted @ 2018-08-16 16:30 wrjlinkkkkkk 阅读(269) 评论(0) 推荐(0)
摘要:题意: 有 n个人,m个党派,第i个人开始想把票投给党派pi,而如果想让他改变他的想法需要花费ci元。你现在是党派1,问你最少花多少钱使得你的党派得票数大于其它任意党派。 n,m<3000 思路: 枚举“除了党派1之外其他党派最多有的票的数量”,贪心一下即可 坑点: 1.爆int 2.inf太小,要 阅读全文
posted @ 2018-08-13 00:09 wrjlinkkkkkk 阅读(748) 评论(0) 推荐(0)