Loading

做题记录(四)

题目总结(四)

题目名称 做题时间 题目标签
01 序列 2024.2.4 ST
Dance Mooves S 2024.2.5 无限问题
Cow Hopscotch G 2024.2.5 DP
大河的序列 2024.2.5 结论
IP地址 2024.2.18 字典树
餐巾计划问题 2024.2.26 网络流

01 序列

2024.2.17

题目做法

设 \(pre_{x,i}=\sum_{j=1}^i[a_i=x],(0\le x\le 1,1\le i\le n)\)

第一问其实是求 
\(\max_{i=l-1}^r\{pre_{0,i}−pre_{0,l−1}+pre_{1,r}−pre_{1,i}\}=pre_{1,r}−pre_{0,l−1}+max_{i=l-1}^r\{pre_{0,i}-pre_{1,i}\}\)

就是求区间最大值,用ST表可实现。

第二问只有 \(1\) 和 \(2\) 两种答案,要有 \(2\) 则区间中必须出现连续的 \(01\),于是我们维护 \(01\) 出现次数的前缀和,如果左端点前缀和等于右端点前缀和,则答案为 \(1\),否则为 \(2\)

题目反思

  1. 写表达式+变换表达式解决问题

  2. 双位前缀和

Dance Mooves S

2024.2.17

题目做法

先进行一轮 \(K\) 分钟的模拟。记录某点可以被那些奶牛到达。

对于一头奶牛,初始位置在 \(a\),结束位置在 \(b\),那就相当于在 \(a\) 处的奶牛与在 \(b\) 处的奶牛轨迹相同。对于这些边构成的一个环,环上的点可以到达点相同,这里可以用并查集维护。

题目反思

无限进行问题->找环,找重复性

Cow Hopscotch G

2024.2.17

题目做法

P3120 题解

题目反思

更新与桶记录方向相反

大河的序列

2024.2.17

题目做法

\(\&_{i=1}^na_i+|_{i=1}^na_i\le \max_{i=1}^na_i\),答案是最大的那个数乘2

证明

假设现在答案是w,加入一个数x,依照按位贪心的思想(选高位的1一定最优),分两种情况讨论:

1.w>x w在前面的位上有1但x没有,那么肯定不选x,因为&和损失的高位上的1,再怎么增加|和的后面位置的1都于事无补,那么这个时候选w优于选wx优于选x

2.w=x 显然这时选不选都没关系

3.w<x w前几位的1,x都有,而且w某一个较高位的0,x也有1,这个时候如果把w与x合并,只会增加|和,而如果抛弃w把答案置为x,那么会增加|和和&和,显然这时选x更优,其实就是swap(x,w)就转化成了第一种情况

综上,答案是最大的数乘2

题目反思

  1. \(\&_{i=1}^na_i+|_{i=1}^na_i\le \max_{i=1}^na_i\)

  2. 假设过程法

IP地址

2024.2.18

题目做法

题目反思

  1. 树形向下更新信息->打标记

  2. 先下传,在修改,保证正确性

  3. 先减后加式前缀和

    for(int id:Begin[i])ans[id]-=Query(str[id]);
    for(int id:End[i])ans[id]+=Query(str[id]);
    
posted @ 2025-04-02 15:40  lupengheyyds  阅读(25)  评论(0)    收藏  举报