07 2016 档案

HDU-4455 Substrings(DP)
摘要:题目大意:给一个长度为n的整数序列,定义egg(i,j)表示区间[i,j]中不同的数的个数。q次询问,每次询问x,表示求所有长度为x连续区间的 egg 之和。 题目分析:定义dp(len)表示所有长度为len的连续区间的egg之和。 则,dp(len)=dp(len-1)-egg(最后一个长度为le 阅读全文

posted @ 2016-07-31 17:19 20143605 阅读(880) 评论(0) 推荐(0)

HDU-4747 Mex(线段树区间更新)
摘要:题目大意:给一个长度为n的整数序列,定义mex(i,j)表示区间[i,j]中没有出现过的最小非负整数,求sigma(mex(i,j)),即序列中所有连续非空子区间的mex之和。 题目分析: answer=mex(1,1)+mex(1,2)...mex(1,n) + mex(2,2)...mex(2, 阅读全文

posted @ 2016-07-31 15:42 20143605 阅读(982) 评论(0) 推荐(0)

POJ-2991 Crane(区间更新+向量旋转)
摘要:题目大意:n个向量首尾相连,每次操作使某个区间中的所有向量都旋转同样的角度。每次操作后都回答最后一个向量的坐标。 题目分析:区间维护向量信息。向量旋转:x1=x0*cos(t)-y0*sin(t),y1=x0*sin(t)+y0*cos(t),其中t为旋转的角度。 代码如下: 阅读全文

posted @ 2016-07-28 16:48 20143605 阅读(243) 评论(0) 推荐(0)

HDU-4533 威威猫系列故事——晒被子(区间更新)
摘要:题目大意:在平面直角坐标系的第一象限中,给出n个矩形(可能重叠)。有m次询问,每次询问点(t,t)的左下方的正方形区域中矩形的总面积(重叠部分重叠几次就得统计几次)。 题目分析:线段树的叶子节点x维护的是点(x,x)左下方的正方形区域中矩形的总面积。每添加一个矩形,便做一次区间更新。 代码如下: 阅读全文

posted @ 2016-07-27 15:20 20143605 阅读(235) 评论(0) 推荐(0)

URAL-1989 Subpalindromes(单点更新+hash)
摘要:题目大意:给一行字符串,两种操作:change(pos,char),将pos处字符改为char;isPalindrome(i,j),询问[i,j]之间是否为回文字符串。 题目分析:做正反两次字符串哈希,如果哈希值一样则回文。用线段树维护哈希值,单点更新即可。 我的挫代码如下: 阅读全文

posted @ 2016-07-26 17:05 20143605 阅读(325) 评论(0) 推荐(0)