AtCoder Beginner Contest 367
1|0A - Shout Everyday
思路:水题一道,模拟即可。
2|0B - Cut .0
思路:直接 cin
和 cout
即可,c++输入输出性质。
3|0C - Enumerate Sequences
思路:注意到数据范围很小,因此考虑到搜素所有的序列,然后判断是否合法。
4|0D - Pedometer
思路:观察到是环上问题,先断环为链,观察题目,可以发现,对于 s,它的终点范围在 [s+1,s+n-1]。同时,设 a 为到 s 的步数,设 b 为到 t 的步数,题目的限制条件可以转化为 (b - a) mod k = 0,即 b mod k = a mod k。因此,我们可以用哈希表来维护。
代码:
5|0E - Permute K times
思路:可以观察到,每个点其实对应一个基环树,问题转化为求每个基环树的第k个点。考虑倍增。
代码:
6|0F - Rearrange Query
思路:问题为判断子串 a[l:r]a[l:r] 和 b[L:R]b[L:R] 作为多重集是否相等。一个熟知的判断多重集相等的办法是哈希。即将多重集映射为一个数,以数的相等代多重集的相等,这个数称作哈希值。为了确保正确性,需要在映射过程中引入随机性,即随机哈希并通过分析证明错误概率极小。当随机数值域为 [0,m) ,可以证明哈希碰撞的概率不超过 gcd(n,m)/m。代码实现上,可以取 m = 2^64,使用 unsigned long long
进行计算,并使用 C++ 中的伪随机数生成器 std::mt19937_64
来生成随机数。
代码:
__EOF__

本文作者:小张
本文链接:https://www.cnblogs.com/zc-study-xcu/p/18373634.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/zc-study-xcu/p/18373634.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
分类:
比赛
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?