随笔分类 -  算法 - 贪心

USACO2018DEC PLATINUM
摘要:就按(博主认为的)难度顺序排吧。 Sort It Out 分析 容易发现选出的集合一定是所有逆序对的一个最小覆盖集,那么剩下的就一定是一个LIS。仔细想想还可以发现字典序第$k$小的最小覆盖集的补集一定是字典序第$k$大的LIS,所以找到这个序列字典序第$k$大的LIS就好了。 代码 The Cow 阅读全文

posted @ 2019-03-07 20:37 ErkkiErkko 阅读(257) 评论(2) 推荐(0)

[BZOJ5249][九省联考2018]IIIDX:线段树+贪心
摘要:分析 GXZlegend orz 构造出一组合法的解并不是难事,但是我们需要输出的是字典序最大的解。 字典序最大有另一种理解方式,就是让越小的数尽量越靠后。 我们从树的根结点出发,从1开始填数,构造出来的一定是一组合法的解。 对于每种相同的数,可以通过线段树上二分逐个确定他们的最优位置,具体细节可以 阅读全文

posted @ 2019-02-27 22:33 ErkkiErkko 阅读(180) 评论(0) 推荐(0)

[BZOJ1697][USACO2007 FEB]Cow Sorting牛排序:贪心+置换
摘要:分析 一个月前做的一道题补一下题解,就简单写一写吧。 单独考虑每一个循环节,如果只进行内部的调整,最优方案显然是把最小的绕这个循环交换一圈。 但是借助全局最小值可能使答案更优,两种情况取个$\max$就好了。 代码 cpp include define rin(i,a,b) for(register 阅读全文

posted @ 2019-01-11 21:43 ErkkiErkko 阅读(255) 评论(0) 推荐(0)