近日做题总结1

  1. 今日做题新学了几个技巧和算法
    1.二分答案: 利用二分的方法,将一个最值问题转化为了判定问题。有一个?check函数,判断给定的值是否合法,主函数里就是一个while循环进行二分。适用于求最大最小值,例如min(所有情况)
    max(四个地区奶牛数量)。 例题:
    (1)数列分段
    (2)P1873 [COCI2011/2012 #5] EKO / 砍树
    (3)P2678 [NOIP2015 提高组]跳石头

    2.二维前缀和: d[i][j]=d[i-1][j]+d[i][j-1]-d[i-1][j-1]+a[i][j],以i,j为右下角的矩形面积
    例题: P2280 [HNOI2003]激光炸弹

    3.数据离散化: 有些时候给的点很少但是点的值很大,这个时候利用数组来存储就会很浪费空间。数据离散化能将数据转化成相对位置,例如10,100,1000能够映射到1,2,3,按照它们的排列顺序进行映射。能够与二维前缀和相结合。
    例题:P3138 [USACO16FEB]Load Balancing
    S

    4.差分数组: 差分数组存储的是数据之间的差,在对区间进行统一的加减操作的时候很是有用,例如,要对1-4的点都加1,利用差分数组,只需要把d[1]+=1,d[4]-=1即可,如果需要用到真实值的时候,前缀递推一下就行。差分数组概念
    例题: P3406
    海底高铁
    (本题就是差分数组和前缀的综合应用。)

    5.对于固定了区间大小,要求哪一个区间的情况最优(看题意)则可以遍历这个大小的每一个区间,枚举求解。 例题:
    P3662 [USACO17FEB]Why Did the Cow Cross the Road IIS

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值