• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
Augenstern-
博客园    首页    新随笔    联系   管理    订阅  订阅
2025.10.24 测试

提高组模拟赛, shanganze 2h AK

me 只会两道,被踩爆了

把简单题想复杂了,写太慢了

1.

谔谔,不知道为什么浪费好长时间

就做个前缀和

然后想用 set 但求不了 个数

然后写了个线段树

2.

一眼

每一列答案单调,一起算

3.

考虑枚举 gcd

然后是个计算直径

这样还并不能通过

考虑到数据随机,所以 \(\sum num_{gcd}\) 是 \(n \log n\) 级别

所以每次计算直径时只把用到的边加进来即可

4.

一眼想到 boder 了,然后就寄了

先考虑字符串构造的过程

就是把大写放右边,小写放左边

然后发现可以用题目中提示的哈希 \(O(1)\) 判断弱循环节

考虑每一个 弱循环节 \(x\)

出现位置一定是一段连续的区间 \(x , r_x\)

因为每个字符要对应的字符其实是固定的,不合法后后面一定不合法,而且 \(x\) 时刻一定合法

然后可以对每个 \(x\) 二分出其出现区间

询问变成

区间 \(x \le q \le r_x\) 的 \(x_{max}\)

然后这个东西可以对 \(x \le q \le r_x\) 扫描线, \(x\) 在 \(x\) 时刻激活,在 \(r_x + 1\) 删除

然后查询区间 max

posted on 2025-10-26 21:47  初绘  阅读(0)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3