-
今日做题新学了几个技巧和算法
1.二分答案: 利用二分的方法,将一个最值问题转化为了判定问题。有一个?check函数,判断给定的值是否合法,主函数里就是一个while循环进行二分。适用于求最大最小值,例如min(所有情况)
max(四个地区奶牛数量)。 例题:
(1)数列分段
(2)P1873 [COCI2011/2012 #5] EKO / 砍树
(3)P2678 [NOIP2015 提高组]跳石头2.二维前缀和:
例题: P2280 [HNOI2003]激光炸弹3.数据离散化: 有些时候给的点很少但是点的值很大,这个时候利用数组来存储就会很浪费空间。数据离散化能将数据转化成相对位置,例如10,100,1000能够映射到1,2,3,按照它们的排列顺序进行映射。能够与二维前缀和相结合。
例题:P3138 [USACO16FEB]Load Balancing
S4.差分数组: 差分数组存储的是数据之间的差,在对区间进行统一的加减操作的时候很是有用,例如,要对1-4的点都加1,利用差分数组,只需要把d[1]+=1,d[4]-=1即可,如果需要用到真实值的时候,前缀递推一下就行。差分数组概念
例题: P3406
海底高铁(本题就是差分数组和前缀的综合应用。)5.对于固定了区间大小,要求哪一个区间的情况最优(看题意)则可以遍历这个大小的每一个区间,枚举求解。 例题:
P3662 [USACO17FEB]Why Did the Cow Cross the Road IIS
近日做题总结1
最新推荐文章于 2024-07-22 09:38:37 发布