Codeforces Round #760 (Div. 3)

Codeforces Round #760 (Div. 3)

比赛的时候做了 A,B,C,D,G.     

A. Polycarp and Sums of Subsequences

标签:模拟  

仔细观察发现 b[1],b[2] 恰好对应 a[1],a[2], 然后 a[3] 就是第 3 项或第 4 项.  

由于问题保证有解,所以只需判断一下是否是第三项即可.   

  

B. Missing Bigram

标签:模拟  

如果可以直接输出的话就在末尾随便加一个字符.  

否则可以在不合法的位置选择输出两个字符,其余位置输出一个即可. 

  

C. Paint the Array

标签:gcd 相关.  

可以枚举是奇数下标还是偶数下标可以被钦定的 d 整除.  

那么显然这个 d 必须是所有数字的 gcd.   

然后显然对于不能被 d 整除的位置条件应该苛刻,所以直接取 d 作为答案即可. 

  

D.  Array and Operations

标签:贪心,众数

贪心选择将最大的 2K 个数字操作掉.  

那么操作这些数字的时候贡献要么是 0 要么是 1.  

只需把众数的个数拿出来,然后讨论一下是否会出现 1 的情况即可. 

  

E. Singers' Tour 

标签:模拟,性质分析 

显然可以直接确定 a[i] 之和.  

然后可以考虑相邻的 b[i] 之间的不同,发现这个不同是 a+n×a[i].  

然后就能将 a[i] 解出来了,答案其实是唯一的. 

  

F. Reverse

标签:二进制,模拟 

不难发现加 0 的操作就是将二进制序列翻转,然后 + 1 的操作是 + 1 后翻转.  

由于每个数字最多会有 2 个分叉,所以直接暴力搜索用 map 记录一下即可. 

  

G. Trader Problem

标签:并查集   

可以把所有数字放到一起排序,那么如果一个数字可以达到第一个比他大的数字就连边.   

然后数字序列就构成了若干个连通块,每一个连通块的贡献就是前 num[i] 大的数字和.  

这里 num[i] 代表这个连通块中包含初始数字的个数.   

这个模型可以将询问离线从小到大排序,然后挨个合并并查集即可. 

  

posted @   guangheli  阅读(143)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示