JOISC2021极简略总结

本文是对JOISC2021比赛的简要总结,涵盖多个题目(D2T1-D4T3)的解题思路。D2T1利用SPFA或Floyd算法处理;D2T2通过二分和二维偏序解决;D2T3通过笛卡尔树进行分治;D3T1使用特定保留策略和删除顺序;D3T2将人分为两类并利用DP处理转换方向;D3T3应用长链剖分;D4T1采取贪心策略;D4T2结合信息压缩解决问题;D4T3利用线段树合并技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

D2T1

  • 似乎可以用spfa/floyd,按管制时间从晚到早的顺序加进去,每次都更新一下。

D2T2

  • 先二分出第KKK大的值,然后在找出所有距离小于这个值的点对的距离。

  • 全程可以用二维偏序解决。

D2T3

  • 考虑建出笛卡尔树然后在上面分治。
  • 直接边分治的话比较暴力,考虑用一下奇技淫巧尽量让A每输出一个字符就让可能性砍半。

D3T1

  • 考虑保留第一个X,最后一个Z,以及它们中间的“YX”(Y和X一定要粘起来)。
  • 接着把没有保留的按从左往右的顺序删除,可以发现“YZ”虽然没有被保留,但是这样删依然能让“Y”变成good removal。
  • 直接发送是O(n)O(n)O(n)的,考虑只有Cn−iiC_{n-i}^iCnii种情况,大概最多刚好7w左右,所以压一压就能过了。

D3T2

  • 考虑把所有人分成两类:从左往右和从右往左。
  • 接着设一个DP表示f[i][j]f[i][j]f[i][j]表示你现在走到从左往右的第iii个人和从右往左的第jjj个人。
  • 显然在他们相遇的时候再转换方向。
  • 但有一个特殊情况:你有可能掉头去找一个跟原来的人同方向的人。
  • 这时候你就需要新建虚空人,贡献为000,这样子就可以顺利转移了。

D3T3

  • 直接长链剖分就完了。

D4T1

  • 考虑贪心从小到大取。
  • 判断合法性就可以先按区间左端点排序,然后倍增判断是否会让答案小于KKK

D4T2

  • 你知道9个位置的数,其中7个位置表示7个目标点的信息,1个用来表示它们是哪个目标点,还有1个好像可以把发送的数字压缩到12。

D4T3

  • 据说线段树合并就完了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值