7月31日总结

今日小事祭

将树状数组1.2打过
树状数组2是区间加,单点查
然而树状数组只能进行单点修改,区间查
考虑差分

 1   2   4   6   9
   1   2   2   3
       ^   ^
      +k       -k  (区间加时,树状数组单点修改)
将差分维护一个单缀和(树状数组维护差分前缀和)所以第k个点的值即为k的前缀和

将线段树2调过!!!
维护乘法即为 \((ax+b)*k+c=ak+bk+c\)
原则为先乘后加,乘时add标记也要\(*k\)

学习了单源最短路,贝尔曼·福德(O(n*n))
枚举i的子节点u,若dis[i]+边权w<dis[u],则更新dis[u],相当于松弛操作。若某个节点的所有子节点都无法进行松弛,则完成(感性理解qwq)

SPFA优化
将所有重复考虑的松弛操作优化,将能松弛dis[u]的u加入队列。vis[u]维护u是否在队列中,若在则不重复添加,跑到队列空为止。
SPFA判负环
因为有 \(n-1\) 条边,所以若一条边被重复添加 \(n\) 次就一定有负环

今日模拟赛

  • T1:离散化,2h切了,但数组开小了,RE了最后一个点,T w T
  • T2: 错误的贪心使我浪费了2h的青春,本质是一个差分约束+spfa
  • T3,4:没时间看,大寄!
posted @ 2024-08-03 10:44  daydreamer_zcxnb  阅读(9)  评论(0编辑  收藏  举报