2023.8.25 LGJ Round

A

Alice 和 Bob 玩一个游戏,Alice 先手。
有一个长度为偶数的字符串,每次取出该字符串最前或最后的字符并删掉,并把该字符加入自己的字符串末尾。
双方都采取最优策略,问谁的字符串字典序更小,或相同。

区间 dp.
dpi,j 表示 [i,j] 这个区间先手必胜/必败/平局。
初始 dpi,i+1=[si=si+1].
枚举先手取哪个,后手取哪个即可。
转移 dpi,jdpi,j2.
dpi,jdpi+1,j1.
dpi,jdpi+2,j.

最后 dp1,n.

B

一张地图上 (n,m104),经过一条无向边需要花费一些时间。
有两个内鬼,给定初始位置,内鬼需要抓到所有共 k(k8) 个目标。
有若干情报,每条情报揭露了 p,x,t,代表第 p 个目标在 t 时刻出现在 x.
若内鬼在 t 时刻恰好在 x,那么就可以抓捕目标,这也是仅有的抓捕方式。
求抓到所有目标的最小时间。

首先枚举两个内鬼分别抓哪些人。
分层图,设 fu,S 表示当前在 u,抓捕了 S 集合的所有人,需要多少时间。
转移即可。

C

有一个序列,aimn,m105.
对于 i=1m,问最短的区间,使得 [1,i] 都出现了。

处理类似 mex 的一类题目,套路是从小到大顺序加入 1m.
我们加入的时候,顺便处理一个数组 fi,L 表示:
当前加到 i,左端点为 L 的区间满足出现 [1,i] 的最小右端点。

对于加入的 i,设其出现位置是 p1,p2...pk.
对于在 [pj+1,pj+1] 这里的所有 Lfi,Lmax(fi1,L,pj+1)
我们还发现 fi1,L 是单调的,我们只需二分出 fi1,jpj+1 的区间将其全部赋值成 pj+1 即可。
对于 i 的答案就是求最小的 fi,LL+1.
用线段树,实现区间查询第一个大于某数的位置(线段树上二分),区间赋值,区间求 min.

D

要求支持区间向区间建边,边权是 a×2b 类型。求最短路。
强行拼题。
关于 a×2b,是 CF464E The Classic Problem
大概是线段树维护高精加,再把线段树可持久化一下。
关于两棵线段树大小,线段树上二分 Hash 值找出第一位不一样的即可。

区间向区间建边,正常做法是线段树优化建图,(然而这题好像不是)。

posted @   s1monG  阅读(25)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?
点击右上角即可分享
微信分享提示