把环倍长,设$w(i,j)$表示对于$i$,决策$j$的价值,如果$j$在$[i,i+n]$,那么$w(i,j)=dis(i,j)$,否则$w(i,j)=-dis(i,j)$。 则$w$满足四边形不等式,最优决策满足完全单调性,分治求解即可。 时间复杂度$O(n\log n)$。 #include<
分类:
其他好文 时间:
2016-02-01 01:59:18
阅读次数:
153
主题连接:http://codevs.cn/problem/1107/一道非常奇妙的题目。对于算术表达式一类的问题,能够採用编译原理里的后缀表达式的方式来做。详细做法是分别维护两个栈,一个栈里保存表达式里的数字,还有一个栈里保存表达式里的运算符,给每种运算符一个优先级,我们要维护这个栈的单调性,每次...
分类:
其他好文 时间:
2015-12-14 21:06:29
阅读次数:
125
二分kth,答案满足的条件为:m≤ 小于等于x的值数cntx。x和cntx单调不减,随着x增大,条件成立可表示为:0001111。本地打一个小型的表可以发现列编号j固定时候,目标函数f(i,j)似乎具有单调性。变形,f(i,j) = (i+100000+j)*i + j2 -100000,可以看出确...
分类:
其他好文 时间:
2015-11-20 20:03:09
阅读次数:
179
用Manacher算法枚举回文子串,每次在后缀数组排序后的后缀数组中二分,因为用某一后缀和其他子串分别求匹配的长度,匹配长度在排序后该后缀的两侧具有单调性(匹配长度为min{H[x]|i#include #include #include #include #include #include usi...
分类:
编程语言 时间:
2015-11-20 19:49:13
阅读次数:
278
二分中间值x,x和大于等于x的值的数量cnt具有单调性,随着x增大,满足cntx #include#include#include#include#include#include#include#include#include#include#include#includeusing namespa...
分类:
其他好文 时间:
2015-11-19 14:49:48
阅读次数:
93
有K根线是免费的。如果最大花费已知为mx,那么长度大于mx的线都是应该是免费的。线数量表示为d,那么d≤ K。mx越小,d越大,随着mx增大,可行性:00000111111。这就满足了决策单调性。把免费的线的权值设置为1,其他为0,判断mx的可行就是1到N是否有一条权值不超过K的路径。看样例猜题意系...
分类:
其他好文 时间:
2015-11-18 21:26:56
阅读次数:
191
分析:这是一个时间和门的二元组(t,d)和人p匹配的问题,当我们固定d0时,(t,d0)匹配的人数和t具有单调性。t增加看成是多增加了边就行了,所以bfs处理出p到每个d的最短时间,然后把(t,d)和p连边,按t从小到大枚举点增广就好了。无解的情况只有一种,某个人无论如何都无法出去。/*******...
分类:
其他好文 时间:
2015-11-08 16:29:26
阅读次数:
219
一道比较经典的数据结构题。可以用多种方式来做。一,分桶法(平方分解)。根据数字x的大小和区间内不大于x的数字数量cnt的单调性,可知第k大数kth对应的cnt应该满足cnt≥k,且kth是满足条件的最小的一个,可以二分下界。关键在于高效找出cnt,对于每个完整的桶,排序以后二分,不完整的桶就直接暴力...
分类:
其他好文 时间:
2015-11-07 16:07:44
阅读次数:
315
题意:给出序列,找出每个连续长度为k的子序列的最大值和最小值。思路:裸单调队列...单调队列这东西用的真的非常局限,大概只能用到这种情景中==简单说一下维护:添加元素,为了保持单调性,排除队尾所有比要添加的元素大或者小的元素。出队,出队之前要保证要出队的元素在当前范围内,如果不在先把不在的都出队。这...
分类:
其他好文 时间:
2015-11-07 12:14:51
阅读次数:
229
给出一个序列(长度>=2),问去掉一个元素后是否能成为单调不降序列或单调不增序列。对任一序列,先假设其可改造为单调不降序列,若成立则输出YES,不成立再假设其可改造为单调不增序列,若成立则输出YES,不成立则输出NO。由于持平不影响整体单调性,为了直观,我在以下把“不降”称为“递增/升序”,把“不增...
分类:
其他好文 时间:
2015-11-04 00:30:18
阅读次数:
491