摘要: 传送门:http://codeforces.com/problemset/problem/578/c 思路:设f(x)为取x时的最大子段和,f(x)是先减后增的,于是可以用三分法求最值 先确定初始区间[l,r],mid1=(l+r)/2,mid2=(mid1+r)/2 O(n)求出f(mid1)... 阅读全文
posted @ 2015-10-23 17:03 orzpps 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 传送门:http://codeforces.com/problemset/problem/573/d 思路:首先如果没有限制,那么根据排序不等式,肯定按顺序匹配战士和马最好。 但是现在有了战士不能和自己的马匹配的限制。 于是就有了一个重要的性质: 最优匹配的前提下,排序后第i号战士只会与[i-2... 阅读全文
posted @ 2015-10-23 16:43 orzpps 阅读(323) 评论(0) 推荐(0) 编辑
摘要: 传送门:http://codeforces.com/problemset/problem/572/D 思路:首先可以根据下标对k的模将他们分成互不相关的k组,组内可以贪心地使元素按大小顺序排,然后这组的贡献即为max-min 那我们就把a数组排序,那么每组元素一定是连续的。 那么题目就变为把有序... 阅读全文
posted @ 2015-10-23 16:22 orzpps 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 传送门:http://codeforces.com/problemset/problem/571/A 思路:直接算方案数比较困难,可以先求出不成立的方案数,再拿总方案数去减. 若增加的总长度为l,根据插板法,方案数就是C(l+2,2),; 对于不成立的方案 只要满足下面3个条件之一即可 a+x+... 阅读全文
posted @ 2015-10-23 16:04 orzpps 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 传送门:http://codeforces.com/problemset/problem/568/E 思路:首先没有空位,我们是记录一个low数组表示长度为i的上升子序列的最小结尾。 对于一个末尾新的数x,我们只要二分出一个位置low[i]#include#includeconst int ma... 阅读全文
posted @ 2015-10-23 15:10 orzpps 阅读(437) 评论(0) 推荐(0) 编辑