二分答案+网络最大流#include#include#include#include#include#includeusing namespace std;int N,M;const int maxn = 2000 + 10;const int INF = 0x7FFFFFFF;struct Edg...
分类:
其他好文 时间:
2015-09-20 11:39:53
阅读次数:
184
Cdq分治和整体二分是两个很奇妙的东西。他们都是通过离线的思想来进行优化,从而更快的求出解。 整体二分通俗的讲就是二分答案,但是它了不起的地方是一下子把所有的答案都二分出来了,从而可以一下子得出所有查询。 CDQ分治通俗的讲就是二分查询。通常的做法是把所有的查询分成两半,然后通过递归先计算出左...
分类:
其他好文 时间:
2015-09-18 23:17:42
阅读次数:
347
原问题,其实是找最长的相似子串,所谓相似就是一个子串每个值加上一个偏移值可以得到另一个子串。我们先求原数组的差值数组,对新数组求后缀数组,二分答案,判定是否有某个Height数组中的sa最小值与最大值之差大于当前枚举的子串长度。#include #include #include #include ...
分类:
其他好文 时间:
2015-09-18 23:06:57
阅读次数:
222
1.给定一个字符串,求最长重复子串,这两个子串可以重叠。 这道题是后缀数组的一个简单应用。做法比较简单,只需要求 height 数组里的最大值即可。2.给定一个字符串,求最长重复子串,这两个子串不能重叠。 这题比上一题稍复杂一点。先二分答案,把题目变成判定性问题:判断是否存在两个长度为 ...
分类:
编程语言 时间:
2015-09-08 20:09:27
阅读次数:
228
DryingTime Limit: 2000MSMemory Limit: 65536KTotal Submissions: 11128Accepted: 2865DescriptionIt is very hard to wash and especially to dry clothes in....
分类:
其他好文 时间:
2015-09-07 09:39:05
阅读次数:
183
题目链接: Poj 3294 Life Forms题目描述: 有n个文本串,问在一半以上的文本串出现过的最长连续子串?解题思路: 可以把文本串用没有出现过的不同字符连起来,然后求新文本串的height。然后二分答案串的长度K,根据K把新文本串的后缀串分块,统计每块中的原文本串出现的次数,大于原...
分类:
编程语言 时间:
2015-09-05 15:06:13
阅读次数:
325
给了一个矩阵 n行m列 选n个数 要保证这n个数不在同行同列,计算出第k大的数最小 , 二分答案,然后我们对于每个a[i][j]#include #include #include #include using namespace std;const int maxn=100+5;struct BP...
分类:
其他好文 时间:
2015-09-05 00:04:46
阅读次数:
234
UVALive4513 (字符串hash题目:在一个串中找到至少出现m次的最长的串。思路:直接hash,然后二分答案。/** @author: Cwind* http://www.cnblogs.com/Cw-trip/*///#pragma comment(linker, "/STACK:102....
分类:
其他好文 时间:
2015-09-03 12:46:30
阅读次数:
221
题意比较坑,移动完以后的士兵不能再次移动,不然样例都过不了。。。最小值最大所以二分答案,跑网络流验证是否可行。这种题重点在建图,为了保证只移动一次,拆点,一个入点一个出点,到了出点的自然不能再次调度。不在边界上的边连一条容量为1的边表示至少留一个人,在边界上的与T的连边就设置成mid。其他细节:注意...
分类:
其他好文 时间:
2015-09-01 13:49:07
阅读次数:
198
题意:
给出一颗n个结点的树,点上有权值;
两种操作:
1.修改某个结点的权值;
2.求x,y路径上第K大值;
题解:
首先显然这题可以先树剖一下,将其转化为区间问题;
那么问题来了,用什么维护?
这是有很多办法的,一般人都会上一些比较显然的方法吧;
比如线段树套平衡树,二分答案处理询问;
时间达到了O(mlog^4n)。。。20*20*20*20=160000.。。;...
分类:
Web程序 时间:
2015-08-27 21:20:59
阅读次数:
411