Skip to main content
  1. Tags/

线段树

2016

codeforces #351 D. Jeff and Removing Periods (线段树/树状数组判断位置成等差数列)

·3 mins
题目链接 题意:有n个数,每次可以删除掉数值相同并且所在位置成等差数列(只删2个数或者只删1个数应该也是可以的),删掉这些数以后可以将剩下的数重新以任意顺序排列,称为一次操作。现在给出m个询问,每个询问一个区间[l,r],问删光区间[l,r]中的数最少需要的操作次数。

codeforces 338 E. Optimize! (线段树维护最小前缀和)

·3 mins
题目链接 题意:题意是由伪代码给出的。。手算模拟了一下(noip初赛即视感),题意大概是说,给出两个数组a和b,a数组长度为n,b数组长度为len,然后从a中截取连续的len个元素,称为数组s,如果存在一种方法使得s中元素和b中的元素一一对应且每组和都大于等于h,则称这个s是合法的。现在问a中有多少个合法的s。 具体来说,对于样例 5 2 10 5 3 1 8 5 5 7

2015

hdoj 2795 Billboard

·1 min
http://acm.hdu.edu.cn/showproblem.php?pid=2795 题意:一个尺寸为wh的方格。要按顺序放放n个尺寸为1wi的纸条。问每一个纸条回被放在哪里。如果有多个,放在最上面(编号小) 思路:把没横行能放的最大长度看做一个序列建树。由于h比n大很多。。多出来的没用。。直接取较小值就行。