2024 湖南省赛(HNCPC 2024)
1|0C - easy math
因此答案就是
2|0E - 拼接串
考虑值域只有,因此我们可以用表示状态对应的最长区间。其中是一个位二进制整数
我们可以先用双指针统计出每个对应的合法区间的最大右端点。并且更新。
然后我们可以在做一次dp,状态为表示的子集对应的最场区间。
此时答案就可以表示为。
3|0H. 经文
表示前位,且已经匹配了个完整的串,当前串匹配到了的方案数。然后我们可以枚举下一位放什么,这里面如果失配,下一位不一定需要从头开始匹配,我们可以用的前缀数组进行计算下一位可能匹配到哪一位。
4|0I - 数据检索系统
按照题目模拟
5|0J - Beautiful Sequence
对于数组我们记表示数字出现在了下标的位置。对于有类似的
对于题目的要求,可以转换为对于值域,如果值域内的数都选就是 beautifu 序列。
很容想到一个性质,对于值域的子序列,如果相同,则一定满足值域的子序列也一定相同。
因此我们可以用双指针求出对于每一个符合条件的最大的。
现在我们考虑如何快速判断出值域的子序列在出现的顺序相同。此时应满足
我们如果暴力的判断实际是的,加上双指针的复杂度,肯定无法通过。
我们可以考虑,如何在已知满足的情况下,判断是否满足?
我们可以用两个std::set<int>
分别维护。 当我们插入,可以在set
中找到前后的第一个数字,并判断是否相等,这样的复杂度是。所以总体复杂度就是。
6|0K - 渡劫
我们可以建立分层图,这样的话一次免费的机会就是层与层之间的单向边。然后建立一个超级终点,然后从每一个点到超级终端的单向边权就是点权。
然后就是要求所有点到终点的最短路,实际上我们从终点反向建边求单源最短路。
答案就是最短路的最大值。
__EOF__

本文作者:PHarr
本文链接:https://www.cnblogs.com/PHarr/p/18538584.html
关于博主:前OIer,SMUer
版权声明:CC BY-NC 4.0
声援博主:如果这篇文章对您有帮助,不妨给我点个赞
本文链接:https://www.cnblogs.com/PHarr/p/18538584.html
关于博主:前OIer,SMUer
版权声明:CC BY-NC 4.0
声援博主:如果这篇文章对您有帮助,不妨给我点个赞
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2023-11-10 The 10th Jimei University Programming Contest
2022-11-10 牛客小白月赛 54
2022-11-10 牛客小白月赛55
2021-11-10 2021 ccpc 女生赛部分题解