随笔分类 -  贪心

该文被密码保护。
posted @ 2019-11-08 14:22 水题收割者 阅读(1) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2019-10-13 20:43 水题收割者 阅读(1) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2019-10-13 19:42 水题收割者 阅读(1) 评论(0) 推荐(0)
摘要:分析 从大到小考虑每个点 记录一个连通块中选了选了几个 如果选的小于siz则直接选否则不选 代码 阅读全文
posted @ 2019-09-30 11:28 水题收割者 阅读(110) 评论(0) 推荐(0)
摘要:分析 我们发现到达一个点一定是先快车再准快车再慢车 于是快车将1-n分为多个区间 每次取出每个区间当前能到达的点的数量 选剩余时间贡献最大的的一个取得贡献并且再能到达的最远点建立准快车 代码 阅读全文
posted @ 2019-09-30 10:49 水题收割者 阅读(476) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2019-09-30 09:41 水题收割者 阅读(3) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2019-09-30 09:10 水题收割者 阅读(3) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2019-09-30 08:33 水题收割者 阅读(2) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2019-09-19 08:47 水题收割者 阅读(3) 评论(0) 推荐(0)
摘要:分析 就是保存前pi-1个数每个ai出现多少次 然后维护这些数当前剩余的最大值 每次和新加进来的比较即可 如果新的大直接取 否则新的最大值一定不大于原来的最大值 因此o(n) 代码 阅读全文
posted @ 2019-09-14 21:47 水题收割者 阅读(115) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2019-09-01 09:24 水题收割者 阅读(1) 评论(0) 推荐(0)
摘要:分析 傻子题? 对d取模后随便贪心即可 代码 阅读全文
posted @ 2019-08-24 19:42 水题收割者 阅读(100) 评论(0) 推荐(0)
摘要:分析 我们对于每一个点记录他所在的这一行以它为右端点向前最多有几个连续的1 之后我们考虑每一列 对每一列的点按照之前求出的值从小到大排序 一次考虑每一个宽度 而高度也可以很容易的求出 每次取最大值即可 代码 阅读全文
posted @ 2019-08-24 19:32 水题收割者 阅读(109) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2019-08-20 17:11 水题收割者 阅读(1) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2019-07-15 16:07 水题收割者 阅读(2) 评论(0) 推荐(0)
摘要:传送门 分析 我们先考虑如果所有数都不相同我们应该怎么办 我们可以直接贪心的在每个点放可行的最大权值 但是题目要求可以有相同的数 我们可以考虑每次让当前节点可发且尽量大的同时给兄弟节点留的数尽量大 我们用线段树维护每个点比它大的点还剩几个 对于每个点要给它的子树预留足够的点即可 代码 阅读全文
posted @ 2019-03-27 10:41 水题收割者 阅读(276) 评论(0) 推荐(0)
摘要:传送门 分析 我们知道选一个点的代价就是他所有出边边权的异或和 由于一条边如果两个端点均选边权会异或两次变回0,所以不必担心重复的情况 于是直接跑线性基即可 代码 阅读全文
posted @ 2019-02-28 22:39 水题收割者 阅读(114) 评论(0) 推荐(0)
摘要:传送门 分析 1.先预处理出不被0覆盖的点,然后对每个点处理出在它左边离他最近的点和在他右边理他最近的点。 2.对于每个至少存在一个忍者的区间,先将它左右边界处理为不被0所覆盖。排序后将包含其他区间的区间去除。 3.贪心求出前i个区间最小忍者数和后i个区间最小忍者数。 4.我们知道对于一个区间除了点 阅读全文
posted @ 2019-02-09 16:34 水题收割者 阅读(299) 评论(0) 推荐(0)
摘要:传送门 分析 首先不难想到我们要先处理容量变大的再处理容量变小的 对于第一种情况我们自然要选择x小的先格式化,因为这个样暂时存储所需空间较小,可以使得情况更优 而第二种情况y先考虑,因为这样对总空间的减少量小 代码 阅读全文
posted @ 2019-02-09 15:31 水题收割者 阅读(156) 评论(0) 推荐(0)
摘要:传送门 分析 神奇的贪心,令f[i]表示前i个每次都出比对方稍微大一点的牌最多能赢几次 g[i]表示从i-n中每次出比对方稍微小一点的牌最多赢几次 ans=max(f[i]+g[i+1]) 0<=i<=n 虽然方案可能会重合但是这是可行的 1:因为限制比原题目宽,所以ans>=真实的答案 2:对于重 阅读全文
posted @ 2019-02-09 15:11 水题收割者 阅读(159) 评论(0) 推荐(0)