小结:特殊的技巧

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

中位数:中位数有个很好的性质,即在直线上所有的点到这些点的中位数的距离和是最小的。例题很多(很多cf的题我都没写在这里了..请看我cf的文章):

  1. 【vijos】1882 石阶上的砖(中位数+特殊的技巧)
  2. 【BZOJ】1045: [HAOI2008]糖果传递(中位数)

差分:差分是个好东西。。能够进行一些区间操作orz。即我们可以将线段拆成点,权值为1(左端点)-1(右端点),那么离散端点后从左向右扫,根据所需要的维护信息,例如:

  1. 【BZOJ】1637: [Usaco2007 Mar]Balanced Lineup(前缀和+差分+特殊的技巧)
  2. 【BZOJ】1676: [Usaco2005 Feb]Feed Accounting 饲料计算(差分)
  3. 【BZOJ】1651: [Usaco2006 Feb]Stall Reservations 专用牛棚(线段树/前缀和 + 差分)(计算区间重叠数)
  4. 【BZOJ】1635: [Usaco2007 Jan]Tallest Cow 最高的牛(差分序列)(区间加减)
  5. 【tyvj】P2065 「Poetize10」封印一击(贪心+线段树/差分)(拆成端点后差分)

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

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

近似:如果题目要求的答案的精度可以差很大的话,可以考虑近似!例题:

  1. 【BZOJ】1011: [HNOI2008]遥远的行星(近似)(寻找答案之间的关系然后来近似)
原文地址:https://www.cnblogs.com/iwtwiioi/p/4066347.html