【比赛】CSP-S 2024 游记

【比赛】CSP-S 2024 游记

1 回顾

T1

10min

一开始还是有点想歪了,仔细想一下然后过了。

T2

1h

非常需要总结的一道题。

几乎看完题就出思路了,注意到算是一道小模拟,所以开打之前先理了一遍思路,这很好。

但是,为什么这道简单题浪费了这么久呢?

打的时候太谨慎?打完第一问就就开始测大样例检查?

不!这其实挺好的。

当时测大样例的时候发现第一问多了点,然后开始输出单组数据进行调试。

这个时候问题出现了,输出浮点数用 %d 我吐了啊,p 全部输出 0,然后单独测的时候总能过,合起来总是不能过,我以为我 ub 导致了一些神秘错误。。。然后查了半个多小时。甚至自己手写了 lower_boundupper_bound

全程丝毫没有怀疑审题出问题,在正确输出 p 之后,猛然发现一切的一切都是符合预期的,这时候回去看题,超速是严格大于啊啊啊!!(题面甚至加粗了……

这个时候心态有点崩了,迅速把取等删去,然后冲完贪心,发现第二问又挂了……

查了大概 5min,发现输出 m-ans 打成 n-ans 了……

T3 (T4)

剩下的大部分时间吧。

同样非常需要总结的一道题。

深呼吸,开 T3,有点怪但是大概率是贪心/dp,先想性质,发现:

  1. 发现把所有的相邻的元素,连边之后,分两种颜色,那么两种颜色的线段最多只会在端点处交错一个;
  2. 一个元素要对答案产生贡献,和其最近的同色匹配一定是不劣的。

这很 dp 啊,我们把任意一个颜色视作主元,定义 fi 表示钦定 i 为主要颜色且和 lst[a[i]] 匹配产生贡献的最大答案。

然后枚举 lst[a[i]] 之前那个染成主要颜色的点 j,有转移:

fi=maxj=1lst[a[i]]fj+w(j,i)

其中 w(j,i)(j,i){j1,lst[a[i]]+1} (后面并上的这个集合需要根据下标稍微判一下)中所有 ak×(出现次数1)

大概 30min 的时候打了一个 O(n3) 然后发现比大样例小了一点,分析了一下大样例发现性质一有点问题,实际上包含也是可以的,但是包含的那个颜色必须是相邻的。于是我们再输入的时候处理掉这种情况,这样性质一就对了,并且不用考虑算 w 的时候的下标问题。

然后就过大样例了,O(n2) 是好改的,应该再优化一下就能过了。心情稍微好了一点,感觉还是有望 300+ 的。

这个时候去看了一眼 T4,感觉像一个巨型 ds 模拟,而暴力可能也就 32pts,所以还是先去冲 T3 的 50pts 了。

于是冲了两个多小时的 T3 优化没优化出来……一直在想直接优化,然后开始想性质,发现好像并没有什么用。


2 总结

估分:100+100+50+0

没脸见人了……人均三道啊…………

T3 下来看了一下,大概有两种做法:

  1. 依赖于值域的 O(nV) dp,用线段树显然优化掉;

  2. (from Super_Cute.

    跟我思路差不多,都从 lst[a[i]] 转移过来的,不同的是我直接去枚举 j 那一步转移,他直接用 lst[a[i]]+1 转移过来了。

    (考场上我好像也想过用某一个 dp 值来平替整个转移的过程的,但是没有深入想,害怕又在一个思路里面陷太久了(但是实际上几乎就没想,然后后面就忘了。

    (教训就是,思路一定要想 bfs 一样,想到一个思路就记录下来,有这么多时间也不缺这一两分钟啊。

还是实力不够……题见的还是不够,还有就是总结有点畸形了,对特定一道题的解法过度总结了,而缺失了对思维方式和解题技巧的总结。

posted @   CloudWings  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示