Day5总结

· 2026-7-16 17:37:16

T1:

前缀和+二分

T2:

排序+二分

T3:

题目:第i天堆一堆vi升的雪,这堆雪每天会融化ti升。

问每天共融化多少雪。

每堆雪在没融化时有两种情况:

1)在今天融不完

2)在今天融完

对于融化量t求一个前缀和

第i堆雪,假设在第j天融化。则pre[j]-pre[i-1]>=v[i]

在pre上二分pre[i-1]+v[i],求出j

这堆雪分成两部分,第一部分是在当天融不完的,即第i天到第j-1天。这些天 每天的融雪量+v[i],和差分一样,于是用差分数组存下。

零头开一个数组存下来。

差分数组求前缀和,加上零头数组就是每天的融雪量。

T4:

题目:网格图下方被堵住,被堵住的高度由a[i]数组存储

机器人每次必须走k步,可以上下左右走。要从起点走到终点,

不能碰被堵住的,不能出边界。问机器人能否走到终点?

分析:若横向差和纵向差有一个不是k的倍数,则NO

机器人无论怎么走,都要穿过ys,yf。所以机器人应走的

尽可能的高(只求是否能到),看机器人一次必须向上k步的情况下

他能到多高,再看ys,yf之间的最大值是否大于这个高度。

大于NO,小于YES

求ys,yf之间的最大值,用ST表解决。

T5:

题目:给定一个正整数序列,求最长同余连续子序列。(同余的那个数>=2)

分析:若两数同余于m,则两数之差%m==0

做法: 1.求相邻数的差

  2.求区间GCD
  
  3.求最长的区间GCD>=2的区间(双指针)

T6:

题目:给一堆区间,取出一些区间来,使每一个区间都存在一个另一个区间和它有交集。

分析:区间(l1,r1) (l2,r2)没有交集,只有在:r2<l1或r1<l2时。

求至少删多少区间,就是求最多保留多少个区间。

做法:

选取每一个区间作为起始区间,在剩余区间中找出所有和它有交集的区间(最大化选取的区间数量)

由分析,为了快速的找到这些和他有交集的区间(等价于找到所有和他没有交集的区间),可以将所有左端点和所有右端点排序}

利用分析中的结论,求出没有交集的所有区间。
已修改 5 次查看 举报

0 条评论

目前还没有评论...

Be the first to comment!

返回讨论列表
徐廷蔚
107
通过题目
10
发帖数