博客园 首页 私信博主 显示目录 隐藏目录 管理 动画
摘要: 传送门 (要是没有tjm(Sakits)的帮忙,我还真不知道啥时候能做出来 结论是第一次带走尽可能少的动物,使未带走的动物不冲突,带走的这个数量就是最优解。 首先这个数量肯定是下界,更少的话连第一次都带不走。 然后考虑带过去之后把某一只留在对岸,剩下的全部随身携带,这时有了一个空位,就可以慢慢把与留 阅读全文
posted @ 2018-08-17 16:50 swm_sxt 阅读(400) 评论(0) 推荐(0) 编辑
摘要: 传送门 (虽然是A了但是不知道复杂度是不是正确的 考虑以某个位置为结尾的合法划分 先考虑min,带来的影响是限制了最小长度,预处理出这个最小长度后,这可以在处理到这个数时,把不能算的部分去掉(不满足min条件的话必定满足max条件)。 单独考虑max条件 对于每一个数,找出以它为最大值的区间后,暂时 阅读全文
posted @ 2018-08-17 16:34 swm_sxt 阅读(350) 评论(0) 推荐(0) 编辑
摘要: 传送门 首先整个矩阵可以被分为很多小矩阵,小矩阵内所有行的单调性是一样的,所有列的单调性是一样的。 考虑如何在这样一个小矩阵中找出答案。我的策略是每次取四个角中最大值和最小值的点,这样可以每次删掉一行或一列,代价就是行数+列数。 稍微思考一下小矩形可能的分布,一是行分两块,列分两块,这样总共4个小矩 阅读全文
posted @ 2018-08-17 16:26 swm_sxt 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 传送门 几波树形dp就行了。 #include<cstdio> #include<cstring> #include<algorithm> #define MN 5100000 using namespace std; struct na{int x,y,ne;}b[MN<<1]; int n,m, 阅读全文
posted @ 2018-08-17 16:15 swm_sxt 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 传送门 外边二分,里面拿线段树维护贪心就行了。 #include<cstdio> #include<vector> #include<cstring> #include<algorithm> #define MN 110000 #define lp p<<1 #define rp p<<1|1 us 阅读全文
posted @ 2018-08-17 16:14 swm_sxt 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 传送门 一开始还手动拓欧找规律,发现好像玩不了。 然后想了想,A-B这个数比较小,枚举它的因子判断合不合法就行了。 需要特判A=B的情况。 #include<cstdio> #include<algorithm> #define ll long long #define ld long double 阅读全文
posted @ 2018-08-17 16:12 swm_sxt 阅读(216) 评论(0) 推荐(0) 编辑