套路

超额累进逐档累加

分档计价的总量按档界切成几段,**每段只乘它自己那一档的单价**,再相加——涨价只对超出档界的那部分生效,不回头追已经算过的部分。

解题套路

档界 0<c1<c2<⋯<cn−10<c_1<c_2<\cdots<c_{n-1},各档单价 p1,p2,…,pnp_1,p_2,\dots,p_n,用量 xx:

  1. 定位:先看 xx 落在第几档(ck−1<x⩽ckc_{k-1}<x\leqslant c_k)。
  2. 切段:把 xx 切成 c1, (c2−c1), …, (x−ck−1)c_1,\ (c_2-c_1),\ \dots,\ (x-c_{k-1})——前面各档全部满额,最后一档只算剩下的那点。
  3. 逐段乘:第 ii 段乘 pip_i。
  4. 相加:
F(x)=p1c1+p2(c2−c1)+⋯+pk (x−ck−1).F(x)=p_1c_1+p_2(c_2-c_1)+\cdots+p_k\,(x-c_{k-1}) .

两个自检

  • 段长相加必须等于 xx。 写完各段先把它们加一遍:c1+(c2−c1)+⋯+(x−ck−1)=xc_1+(c_2-c_1)+\cdots+(x-c_{k-1})=x。对不上就是某一档写成了累计值而不是本档的量。
  • 在档界处两条式子必须同值。 FF 是连续的折线(涨价只对新增量生效),所以 x=c1x=c_1 时「第一档式子」与「第二档式子」算出来必须一样。跳变意味着把公式写成了全额累进(整笔按新单价),那是另一回事。

全额累进不是这个

「超过 c1c_1 就整笔按 p2p_2 算」叫全额累进,函数在 c1c_1 处向上跳一截,会出现「多用一点点、总价反而贵一大截」的怪事。现实里的电价、水价、个税一律是超额累进,正是为了避开这个跳变。题面写「超过 AA 至 BB 的部分」,那个「的部分」就是超额累进的标志词。

什么时候想到它

  • 题面给的是一张按用量 / 收入 / 时长分档的表,档的描述里带「的部分」;
  • 要算的是总额,而不是平均单价;
  • 有多个独立的计费口(分时电价的高峰与低谷、家里两块表),每一口各跑一次这套流程再相加。

学它之前先会

共 1 条前置、最深 1 层。

共 1 道题考到本条。