首页 > 代码库 > 小结:特殊的技巧

小结:特殊的技巧

对于这些题我只能说,太神了orz

 

中位数:中位数有个很好的性质,即在直线上所有的点到这些点的中位数的距离和是最小的。例题很多:【vijos】1882 石阶上的砖(中位数+特殊的技巧)

差分:差分是个好东西。。能够进行一些区间操作orz。即我们可以将线段拆成点,权值为1(左端点)-1(右端点),那么离散端点后从左向右扫,根据所需要的维护信息,例如:【BZOJ】1637: [Usaco2007 Mar]Balanced Lineup(前缀和+差分+特殊的技巧),【BZOJ】1676: [Usaco2005 Feb]Feed Accounting 饲料计算(差分),【BZOJ】1651: [Usaco2006 Feb]Stall Reservations 专用牛棚(线段树/前缀和 + 差分)(计算区间重叠数),【BZOJ】1635: [Usaco2007 Jan]Tallest Cow 最高的牛(差分序列)(区间加减),【tyvj】P2065 「Poetize10」封印一击(贪心+线段树/差分)(拆成端点后差分)

前缀和:和差分一样是个好东西。。二维前缀和可以维护矩阵。

三分:用来找凸函数极值。整数是while(r-l>=3),然后midl=l+(r-l)/3; midr=r-(r-l)/3,且最后求答案要在区间[l,r]再求一遍; 分数是while(r-l>=eps)千万不要写错。。

小结:特殊的技巧