08 2016 档案

codeForce-589D Boulevard(判断线段是否相交)
摘要:题目大意:n个人、一个区间。每个人都会在某个时间段内按相同的速度(所有人的速度都一样,都是1或-1)在他的区间内从一个端点走到另一个端点(只走一次)。问每个人会与几个人碰面。 题目分析:将时间看成一个维度,区间位置看成另一个维度。那么每个人的状态便构成了一条二维线段。只需判断有几条线段与该线段相交。 阅读全文

posted @ 2016-08-22 00:00 20143605 阅读(295) 评论(0) 推荐(0)

UVA-11297 Census(线段树套线段树)
摘要:题目大意:二维空间点修改,询问矩形区域最值。 题目分析:还是比较简单的。 代码如下: 阅读全文

posted @ 2016-08-20 08:50 20143605 阅读(375) 评论(0) 推荐(0)

HDU-2778 DNA Sequence(AC自动机)
摘要:题目大意:统计模式串出现的次数。 题目分析:模板题。 代码如下: 阅读全文

posted @ 2016-08-11 16:24 20143605 阅读(348) 评论(0) 推荐(0)

HDU-2896 病毒侵袭(AC自动机)
摘要:题目大意:AC自动机模板题。 代码如下: 阅读全文

posted @ 2016-08-11 15:31 20143605 阅读(135) 评论(0) 推荐(0)

HDU-2222 Keywords Search(AC自动机--模板题)
摘要:题目大意:统计一共出现了多少次模板串。 题目分析:AC自动机的模板题。不过这题有坑,相同的模板串不能只算一次。 代码如下: 阅读全文

posted @ 2016-08-09 19:39 20143605 阅读(170) 评论(0) 推荐(0)

UVA-11468 Substring(AC自动机+DP)
摘要:题目大意:给一些模板串,一些字符的出现概率。问不会出现模板串的概率是多少。 题目分析:是比较简单的概率DP+AC自动机。利用全概率公式递推即可。 代码如下: 阅读全文

posted @ 2016-08-09 17:07 20143605 阅读(183) 评论(0) 推荐(0)

UVALive-4670 Dominating Patterns(AC自动机)
摘要:题目大意:找出出现次数最多的模式串。 题目分析:AC自动机裸题。 代码如下: 阅读全文

posted @ 2016-08-09 13:14 20143605 阅读(214) 评论(0) 推荐(0)

HDU-1255 覆盖的面积 (扫描线)
摘要:题目大意:给若干个矩形,统计重叠次数不为0的面积。 题目分析:维护扫描线的长度时,只需要只统计覆盖次数大于1的区间即可。这是个区间更新,不过不能使用懒标记,但是数据规模不大,不用懒惰标记仍可以AC。 代码如下: 阅读全文

posted @ 2016-08-08 16:58 20143605 阅读(350) 评论(0) 推荐(0)

HDU-1828 Picture(扫描线)
摘要:题目大意:给若干个矩形,求轮廓边长。 题目分析:与求面积类似。按从下往上扫描,仍然是底边添加,上边删除。但要同时维护竖边的数目,每次扫描对答案的贡献为扫描线上总覆盖长度的变化量加上竖边的增量。总覆盖长度的变化为正说明下轮廓增加,为负以为着碰到了上轮廓增加。 代码如下: 阅读全文

posted @ 2016-08-08 11:05 20143605 阅读(194) 评论(0) 推荐(0)

HDU-5806 NanoApe Loves Sequence Ⅱ(two-pointer或二分)
摘要:题目大意:给一个整数序列,统计<k,m>子序列的数目。<k,m>序列是满足第k大的数字不比m小的连续子序列。 题目分析:维护一个不小于m的数的个数的后缀和数组,可以枚举序列起点,二分查找右端点序列最近的一个<k,m>序列。因为最近右端点是不减的,所以也可以用two-pointer在O(n)的时间复杂 阅读全文

posted @ 2016-08-07 17:14 20143605 阅读(331) 评论(0) 推荐(0)

HDU-5783 Divide the Sequence(贪心)
摘要:题目大意:给一个整数序列,将其划分成若干个子连续序列,使其每个子序列的前缀和不为负。求最大的划分个数。 题目分析:从后往做累加计算,如果不为负,则计数加一,累加和清0。否则,一直往前扫描。如果最终的和为负,答案为0,否则为计数结果。 代码如下: 阅读全文

posted @ 2016-08-06 16:22 20143605 阅读(310) 评论(0) 推荐(0)

HDU-5792 World is Exploding(树状数组)
摘要:题目大意:给一个整数序列,统计四元组(a,b,c,d)的个数,满足条件1:a<>b<>c<>d;条件2:<a,b>组成一个顺序对,<c,d>组成一个逆序对。(a、b、c、d均为下标) 代码如下:从所有四元组中减去不满足条件的四元组。用顺序对数乘以逆序对数得到只满足条件2的四元组数目sum,从sum减 阅读全文

posted @ 2016-08-06 15:40 20143605 阅读(197) 评论(0) 推荐(0)

HDU-5785 Interesting(Manacher算法+区间处理)
摘要:题目大意:给一个字符串,求所有相邻两回文子串的外侧下标之积的和 题目分析:另L[i]为所有以 i 为右端点的回文字串的左端点之和,同理,另R[i]表示所有以 i 为左端点的回文子串的右端点之和。显然,答案为sigma(L[i]*R[i+1]) 其中,1<=i<length(字符串)。求出L和R是关键 阅读全文

posted @ 2016-08-06 10:22 20143605 阅读(603) 评论(0) 推荐(0)

HDU-5781 ATM Mechine(概率DP)
摘要:题目大意:某个未知整数x等概率的分布在[0,k]中。每次你都可以从这个整数中减去一个任意整数y,如果x>=y,那么x=x-y,操作次数累计加1;否则,将会受到一次错误提示。当错误提示超过w次,将会对你的人生产生影响。现在,你的任务是将x逐步变为0,求最少操作次数的期望值。题目分析:概率DP求期望。定 阅读全文

posted @ 2016-08-06 09:27 20143605 阅读(232) 评论(0) 推荐(0)

HDU-1542 Atlantis(离散化+扫描线)
摘要:题目大意:给n个矩形,可能重叠,求面积。 题目分析:线段树维护扫描线。 代码如下: 阅读全文

posted @ 2016-08-03 16:25 20143605 阅读(136) 评论(0) 推荐(0)

HDU-3308 LCIS(区间合并)
摘要:题目大意:给一个整数序列,m次询问,每次询问某个区间中最长连续上升子序列的长度。 题目分析:线段树区间合并。维护以区间左端开头的、以区间右端点结尾的和区间最长的上升连续序列。 代码如下: 阅读全文

posted @ 2016-08-02 15:29 20143605 阅读(248) 评论(0) 推荐(0)

HDU-4777 Rabbit Kingdom(区间更新求和)
摘要:题目大意:给一个n个整数的数列,q次询问,每次询问区间[l,r]中与区间中其它数互质的数的个数.。 题目分析:离线处理,这里以询问区间的左端点从小到大的顺序为例。为了叙述方便,用f(l,r)表示区间[l,r]中与区间中其它数互质的数的个数.。每次用线段树或树状数组维护以 a(i)(1<=i<=n) 阅读全文

posted @ 2016-08-01 20:06 20143605 阅读(400) 评论(0) 推荐(0)