3.11模拟赛总结

博主分享了自己在算法竞赛中的经历,详细分析了三道题目T1、T2、T3的解题思路。T1中尝试了哈希和矩形变化的思路,但未能找到有效解决方案;T2使用了线段树处理区间询问;T3通过打表解决了小规模问题。博客提到了对数据结构如线段树和 Trie 的运用不足,并反思了在比赛中的时间管理。
摘要由CSDN通过智能技术生成

在这里插入图片描述
阅读量过w了! 小小的庆祝一下!

不过我写的东西真的有那么多人看嘛…

今天挂了10pts 下分了呢qwq

乐子人大悲

时间安排

7.30-8.30

推T1 推自闭了就开始吃东西(然后被张总吐槽是用膳了qwq)

8.30-9.00

又推了一会T1,然后又认真看了看其他两题

9.00-10.00

跑路,看了看T2,感觉k=1,=2都很可做,写了个 n < = 2 e 3 n<=2e3 n<=2e3 的cdq,写了个 k = 2 k=2 k=2 的线段树,期望得分55

然后开始造数据,验了验线段树的正确性,调出一个小re,一遍就过了,非常丝滑

10.00-11.50

继续自闭T1 但是没有任何卯用,看了看时间感觉不对,于是先把T3的20打了,然后挂了个表(离谱,有个10分算逆元的过程没取模,挂分了,我人炸裂)

然后继续自闭T1,想了好几种20的写法都假了…我真的会哭

题目分析

T1

最开始想的是hash,但是数太大了,pass~

换了一个想法,考虑每个矩形,那么当这个矩形的右上角不变,左下角向右平移的时候,答案只会变多不会变少,而且变化的位置一定是那些先前一样的

但是很难实现耶…真的写起来的话 很难去对应位置标号,除非多个log,只会 O ( n 2 m 2 l o g ) O(n^2m^2log) On2m2log的写法

然后又想,能不能考虑每行在所有答案里的贡献呢?然后并没有考虑出来具体怎么写合适,感觉需要容斥,但很难容斥…

这个题折腾了我最长的时间,但也真的什么都不会,我裂开了

T2

n < = 2 e 3 n<=2e3 n<=2e3 枚举区间cdq

k = 1 k=1 k=1 任意子区间都符合条件

k = 2 k=2 k=2 考虑全部-不合法即为ans,不合法的情况就是左右端点中全都是1,线段树维护sum,lx,rx表示这个区间内不合法情况数目,从左往右最长1,从右往左最长1,lx,rx在遇到障碍之前(0),不加入sum

T3

n < = 9 n<=9 n<=9 打表

a + b = n + 1 a+b=n+1 a+b=n+1 那么一定是完美符合单峰,先单增再单减,答案是 C n − 1 a − 1 C_{n-1}^{a-1} Cn1a1

update

T1

啊,还是想不到是trie这个数据结构,主要也想不到是根节点合并,不过我当时的想法是有这个雏形的

对数据结构的灵活运用不到位吧可能qwq

T2

又败在了 l o g log log

对于链表没有那么深的理解吧,看了题解之后还是对怎么找变化的位置感到迷惑,看了std之后才恍然

以及 这种询问离线固定一个端点的题目做了好几道了呢…

T3

赛时看这个题的时间不是特别多,也有dp没什么感觉的原因qwq

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值