题意:给定 n 个数,然后每次破坏一个位置的数,那么剩下的连通块的和最大是多少。 析:用并查集来做,从后往前推,一开始什么也没有,如果破坏一个,那么我们就加上一个,然后判断它左右两侧是不是存在,如果存在,那么就合并起来, 然后不断最大值,因为这个最大值肯定是不递减,所以我们一直更新就好。 代码如下: ...
分类:
其他好文 时间:
2016-10-04 11:56:12
阅读次数:
175
一、StrictStandards:OnlyvariablesshouldbepassedbyreferenceinD:\tiandiyoyo\hengtian\ecshop\upload\includes\cls_template.phponline424不淡定了,打开cls_template.php,定位到424行,发现下面内容:代码如下复制代码$tag_sel=array_shift(explode(‘‘,$tag));将其注..
分类:
其他好文 时间:
2016-10-04 07:46:11
阅读次数:
130
在python 中有时候我们用数组操作数据可以极大的提升数据的处理效率, 类似于R的向量化操作,是的数据的操作趋于简单化,在python 中是使用numpy模块可以进行数组和矢量计算。 下面来看下简单的例子 import numpy as np data=np.array([2,5,6,8,3]) ...
分类:
编程语言 时间:
2016-10-03 06:58:26
阅读次数:
257
题意 输入一个含有 n(1≤n≤100000) 个非负整数的 a 数组和一个 1~n 的排列 p 数组,求每次删除 a[p[i]] 后,最大连续子段和(不能跨越被删除的)是多少? 分析 因为都是非负整数,答案一定是尽量长的区间和。 s[i] 表示 a 的前缀和,区间(l,r]的和就是s[r]-s[l ...
分类:
其他好文 时间:
2016-10-03 06:51:18
阅读次数:
125
Given an array of integers, every element appears twice except for one. Find that single one. Note: Your algorithm should have a linear runtime comple ...
分类:
其他好文 时间:
2016-10-03 00:11:18
阅读次数:
196
You have written on a piece of paper an array of n positive integers a[1],?a[2],?...,?a[n] and m good pairs of integers (i1,?j1),?(i2,?j2),?...,?(im,? ...
分类:
其他好文 时间:
2016-10-02 23:53:56
阅读次数:
243
用并查集维护线段,从后往前枚举没个删除的位置id[i] 那么,现在删除了这个,就是没有了的,但是上一个id[i + 1]就是还没删除的。 然后现在进行合并 int left = id[i + 1];(相当于每次都加入一个元素a[left]) 它在这个位置,如果能和左右的合并,就是左右邻居都有元素,那 ...
分类:
其他好文 时间:
2016-10-02 17:30:52
阅读次数:
226
在python 中有时候我们用数组操作数据可以极大的提升数据的处理效率, 类似于R的向量化操作,是的数据的操作趋于简单化,在python 中是使用numpy模块可以进行数组和矢量计算。 下面来看下简单的例子 import numpy as np data=np.array([2,5,6,8,3]) ...
分类:
编程语言 时间:
2016-10-02 17:15:58
阅读次数:
236
原题中需要求解的是按照它给定的操作次序,即每次删掉一个数字求删掉后每个区间段的和的最大值是多少。 正面求解需要维护新形成的区间段,以及每段和,需要一些数据结构比如 map 和 set。 map<int, LL>interval2Sum来维护区间段(u->v),mulitset<LL>sum 来维护最 ...
分类:
其他好文 时间:
2016-10-02 11:05:33
阅读次数:
339
并查集,离线操作。 将操作倒着进行,一开始所有数字都没有加入到数组中,然后倒着一个一个加入,更新最大值。 ...
分类:
其他好文 时间:
2016-10-02 10:46:42
阅读次数:
135