AC得相当辛苦的一道题,似乎不难,但是需要想仔细,
开始的时候的错误思路----是受之前做过的区间最长连续子串影响http://blog.csdn.net/u011026968/article/details/38357157
区间合并的时候,我直接按照---如果(左子树的最大前缀和长度==左子树的长度 && 右子树的前缀和>0),就合并左前缀,这想法有两个错误:1、右子树的前缀和==0的时候...
分类:
其他好文 时间:
2014-08-10 18:45:10
阅读次数:
382
囧,现在才学。而且发现,主席树和以前写过的线段树维护名次是差不多的,,,只是用多颗线段树维护区间信息,然后可以像前缀和一样的加减。恩,慢慢来写这篇博文。(各种定义以及背景我都掠过了)我先说主席树的构成吧(省略大堆专业术语,我只写通俗易懂的)我们假设现在要维护的数组是a[]一颗主席树T[i]其实就是一...
分类:
其他好文 时间:
2014-08-09 21:03:29
阅读次数:
358
在解题过程中,我们有时需要维护一个数组的前缀和S[i]=A[1]+A[2]+...+A[i]。但是不难发现,如果我们修改了任意一个A[i],那么S[i]、S[i+1]...S[n]都会发生变化。可以说,每次修改A[i]后,调整前缀和S在最坏情况下会需要O(n)的时间。当n非常大时,程序会运行得非常缓慢。因此,这里我们引入“树状数组”,它的修改与求和都是O(logn)的,效率非常高。...
分类:
其他好文 时间:
2014-08-05 14:15:00
阅读次数:
193
对于KMP算法中next函数的应用
题意是对于一个字符串的前缀和后缀比较是否相等,再把相等的可能按字符串长度进行输出
#include
#include
#include
using namespace std;
int len;
int next[1000005];
char s[1000005];
int kmp_next()
{
int i=0,j=-1;
...
分类:
其他好文 时间:
2014-08-04 21:32:38
阅读次数:
239
Python 用下划线作为变量前缀和后缀指定特殊变量。_xxx 不能用'frommoduleimport*'导入 ——变量名_xxx被看作是“私有 的”,在模块或类外不可以使用。__xxx__ 系统定义名字 ——__xxx 类中的私有变量名 ——只有类对象自己能访问,连子类对象也不能访问到这个数据。...
分类:
编程语言 时间:
2014-08-04 21:08:17
阅读次数:
213
题意是求第一个字符的前缀和后一个字符串的后缀最大的公共序列,并输出。。。
将两个字符串合并,求出kmp中的next数组就行,但要注意不要大于某个字符串的长度;
#include
#include
const int N = 50005;
#define min(a,b) ((a)
char s1[N], s2[N], s3[N * 2];
int next[N * 2];...
分类:
其他好文 时间:
2014-08-04 17:36:47
阅读次数:
207
题目来源:POJ 2356 Find a multiple
题意:n个数 选出任意个数 使得这些数的和是n的倍数
思路:肯定有解 并且解是连续的一段数
证明:
假设有m个数 a1,a2,a3...am s1 s2 s3...sm为前缀和 s1 = a1 s2 = a1+a2 s3 = a1+a2+a3... sm = a1+a2+a3+...+am
1.如果某个前缀和si%m =...
分类:
其他好文 时间:
2014-08-02 21:01:54
阅读次数:
312
在一棵树上找影响最小的某个点,某个点的影响是等于其他点到他的距离*其他点的权值 的和我一开始也找不到什么好的方法,只能想到每个点暴力去判断,但是这样肯定会超时(10^5个点),又有点想用类似前缀和,但是这是在树上,不是很好搞不过最后还是得用到前缀和,先dfs1把从0号节点出发的整个值算出来,并且沿途...
分类:
其他好文 时间:
2014-07-30 11:38:43
阅读次数:
185
题意:给你一个序列,每一次可以对序列里面任意数+d 或者 -d 问你最少多少步能够使得数列里面所有的数相等解题思路:从 1 - 10000 枚举这个数,二分找数列中小于等于它的最大的那个数,然后求前缀和以后刻意快速求出差值和的绝对值,差值和/d 就是我们所求数。解题代码: 1 // File Nam...
分类:
其他好文 时间:
2014-07-30 09:44:53
阅读次数:
380
HDU 2594 Simpsons’ Hidden Talents (字符串-KMP)
题目大意:
给你字符串s1和s2,问你s1的前缀和s2的后缀最长相同的串多长?
解题思路:
牢记KMP Next数组的含义,将s1和s2拼接在一起,next[len]也就是最终答案。...
分类:
其他好文 时间:
2014-07-29 21:54:52
阅读次数:
333