记4道弱智题

今天集训模拟赛,3h,喜提110pts/400pts。

第一题:反复覆盖区间,求各点处的最小值。

上来想了差分,记录左端点等方法,越写越长。20min跳了,慌。

第二题:模拟题,ipv6压缩。

看起来不难,开始写,先去掉全0串,再去掉前导零,最后处理输出,样例全过了,我觉得能A。

第三题:画图觉得是最大生成树,然后就想起来了货车运输,原题!就开始写树上ST表。我觉得能A

第四题:一开始以为是容斥+背包,就是硬币购物那种,但不是。想状压,预处理xum[i][state],vum[i][state],做背包,假。

中途好几次回去改T1,心态逐渐爆炸。

最后开始写线段树,线段树build忘了赋值tree[u].l和tree[u].r,re十分钟。

过不了,怎么都不对。也懒得写暴力了,直接放了。

最后有信心的T2、T3都炸了:40+70。

一看,T3数组开小了,cao。


第二题总结:

懒标记下传和以往不同,不是区间覆盖问题,而是区间动态更新最小值。

所以要分清val的更改和tag的传递。

如果区间合适,那么可以考虑比较当前区间的最小值和要求更新的值;将这个更新值和tag比较,再下传(要判0)。

pushdown的部分:左区间的值要和tag比较再更新;左区间的tag和u的tag比较,再更新(要判0)。更新(传递)的是.tag而不是.val

注:这道题甚至可以不要pushup(),为什么呢?

应该欣赏一下wyk的做法

T3使得100->40的关键在与judge函数没写返回值!cao

bool judge(int l, int r)
{
    for (int i = l; i <= r; i++) {
        if (str[i] != "0000")
            return false;
    }
    return true;// 这句
}

还有

image

总结:

基本功还是太差了,正式比赛要是这样,那得多遗憾!巩固基本功。

posted @ 2024-07-17 13:24  Vegdie  阅读(6)  评论(0编辑  收藏  举报