CSP-S 2024微信口胡版题解
csp-s2024口胡版题解
整体考虑我个人以及你们在场上的可做性。
t1考虑排序,不在多说
t2做法很多啊:
①考虑dp:
这个对于大家有点难想,并且性价比不高,个人不建议。
②dinic跑二分图:
这个是我一直以来的风格,以简单好想为主,不浪费太长时间,性价比高。但是对于码力有较高要求,对网络流有较深理解,不一定适合所有人。
-具体做法:
分类讨论,匀速的车最简单,只要有测速仪存在即可。匀加速的显然最后的速度最大,所以保留最后一个测速仪显然是较优的,但是可能会与前面已确定的产生重合,这个需要找到具体方案扫一遍去重。接下来我们主要讨论匀减速的情况:
将车从 初速度 减到 恰好超速 的路段离线下来,可视为n条线段。
然后这样建图:

这样的话就将该问题转化为二分图问题,dinic跑二分图复杂度为 n根号 并且完全跑不满,但是多测20不好说,但是ccf数据懂得都懂
最后不要忘了将dinic后的方案找到,以确定匀加速的是否需要在最后一个位置设测速仪。
找方案的具体方法是:若该条边的流为1e5,即取这个点,否则不取。
或者考虑费用流,让所有容量为1e5的边费用为1,跑出费用即为ans
③扫描线
这个其实一眼就是扫描线的模板啊,可以参考luogu的模板〖扫描线〗,这个模板是扫描矩阵的模板,在这里只需要把矩阵改为点就可以了。点代表每个测速仪。
t3:这个是很经典的dp:
有点类似LIS最长不降子序列问题:
考虑只有01两个颜色,所以可将问题化为将一条线段划分为不同颜色段的问题。
对于扫到某一个点要将其染色时 有两种选择,继承前一个相同数值的颜色 或 放弃前面的数值,另起一种新的颜色。
从右往左扫,只需设计两个状态:当前颜色0或1 以及 是否保持 当前颜色的数值 与 前一个相同颜色的数值 相同,即是否另起一段。
当前颜色的贡献值只与前面的贡献值有关,与后面的无关 满足无后效性。
设计状态转移数组dp u, i,j 。i代表当前颜色,取值01,j代表是否与上一段相连取值01。预处理每个数前面的离他最近的数的位置,设该数组每个数为bi
先提示到这吧,大家自己再想想吧,实在想不到了给我打电话吧,感觉微信打字太难顶了。
t4:暂时没想出来正解,但是有思路:
将比赛关系构造成一个空的满二叉树。
首先1e5n,m规模以及逆天的256多测就注定了只能离线,并且单次只能On做
对于特殊性质a,能够保证一颗左子树是确定的,那么他的胜负关系也是确定的,现在关键的是右子树需要自己构造,这是疑问点。
对于特殊性质b,代表一定会有左儿子成为擂主,那么可以对这里进行操作,但是没a性质好处理,这是疑问点。
可以根据以上思路进行随机话贪心进行乱搞,期望得分<34。
总体这次难度不大,与去年相当,个人认为橙绿蓝紫。主要考察对基础的应用。
完结,有啥问题直接问。

浙公网安备 33010602011771号