首页 > 其他分享 >#9 2023.12.18

#9 2023.12.18

时间:2023-12-23 12:22:07浏览次数:35  
标签:谭哥 log 2023.12 线段 NOI2022 18 区间 sa

怎么做题速度单调递减了。


464. THUPC2024Pre

省流:我是演员。

M

我过的题。

K

我过的题。

暴力打表就行了,我在本地打了三分钟就出答案了!很快。

J

我过的题。

考虑 \(v\) 什么时候对 \(len = k\) 没有贡献。那就是 \(v\) 把序列分成了若干区间 \([l,r]\),\(ban\) 掉的区间就是 \([包含[0,v-1] 的最短长度,r-l+1]\)。

I

我最演的一个题。

想了 5min 想到了四毛子+哈夫曼树,算了一下感觉不对(????wtf),就扔了。

又想了 10min 想到了 \(U = A \& B,V = A -U,W = B - U\) 的做法,算了一下感觉不对(????wtf),就扔了。

把谭哥拉过来了 20min,谭哥看了看说我一开始的做法就是对的。这 20min 导致谭哥没冲出 f,我谢罪 /ll。

C

谭哥过的题。

队友过的题我是不是可以不用补。

E

谭哥过的题。

有点神秘的分讨题。

H

谭哥过的题。

史。

B

lcw 过的题。

有人怂恿 lcw 直接按重心贪心,wa 了一发,我不说是我。

lcw 开场就会了一个闵可夫斯基和的做法,暴力是两个 log 的,不过他不太敢写。

然后发现这玩意有个经典技巧,可以做到一个 log,就过了。

D

lcw 过的题。

看起来是大力区间 dp,然后预处理一下合法的转移,好像就过了。

F

谭哥差点过的题。 /ll。

似乎不难,好像要注意维护一下每个人的普通指令数,不然一直 activate 一个空人,会被卡飞。

G

人类显然在连通块里可以乱动,所以权值就是连通块中最大的人数个点。

显然一个状态可以用 \((时间,机器人位置,ls 人数,rs 人数)\) 表示,一共只有 \(O(T n^2)\) 个状态,每次转移容易随便做到 \(O(1)\)。

A

不知道为啥能想出连接 $p_i + 1 $ 和 \(p_{i+1}\)。然后就是简单的分类讨论,加上一种简单的构造。

L

没防住 dls。出题人汗流浃背了吧!

465. loj3965 「APIO2023」序列

他妈的,感觉我现场打的时候智商真低,这都没过。

二分答案,枚举区间内最前和最后的中位数。考虑一个区间合法的条件:中非空,左+中 >= 右,右+中 >= 左。如果把左和中看成 -1,第一个条件相当于区间和 <=0。如果把左看成 -1,第二个条件相当于区间和 >=0。简单线段树判断即可。这是两个 log 的。

交上去发现 T 了,发现内层线段树只做一次然后存下来就行, 就变成一个 log 的了。

466. loj3957 「联合省选 2023」人员调度

假设所有人都已经确定,考虑如何计算答案。大概是从底向上 dfs,每个节点维护一个 size 不超过子树大小的堆。每个节点的堆是把它上面的员工和所有儿子的堆拼起来,然后 pop 到 size 不超过子树大小为止。那么根节点的堆就是答案。

考虑只有加入,假设在 \(x\) 点加入一个人。动态维护根节点的堆。如果 \(x\) 到根的路径上没有满堆,那就直接加进去。否则找到最近的满堆,把最小的人踢掉即可。

套个线段树分治就过了。

他妈的 uoj hack 数据怎么素质这么低啊,估计是对着线段树的区间划分硬卡的。他妈的,我线段树划分区间加随机扰动都过不去,傻逼。

467. xsy5303 新居规划(zayinxxxx)

首先特判掉一整个环都塞满的情况,这样就变成了若干条链。然后长度 \(>2\) 的链至多只有一条,因为可以把其他链的中间塞到一起。然后长度 \(\geq 2\) 的链至多只有一条,因为 \(merge(2,>2)\) 总能成功。

可以直接模拟费用流求答案。

468. xsy5304 黑鸭的序列(dseq)

可以看作有 \(n+q\) 个点,然后把二操作踢了。

可以看作是求树上虚树路径,那只需要 \(\sum dep\) 和 \(lca\)。注意到 1 操作带来的 \(dep\) 变化次数至多只有 \(O(n \log \log V)\) 次,所以可以暴力修改。因为树比较特殊,可以被化为若干层,每层只需要取最大和最小的点计算 lca 即可。

469. xsy5305 黑鸭的字符串(dstr)

假装没有问号。在序列前加一个 0,序列后加一个 1,这样就有 \(n+1\) 个间隔。钦点只能删连续段中最后的 0 和最前的 1,每次删的时候把删的间隔记录一下,可以获得一个长为 \(n+1\) 的排列,所以一个合法的 \(T\) 对应唯一一个排列。观察这个排列的性质:对于串中的 \(0\),\(p_i > p_{i+1}\),对于串中的 \(1\),\(p_{i} < p_{i+1}\)。我们声称满足这样的条件的 \(p\) 也能获得唯一一个串 \(T\)。具体地从前往后构造,删 \(p_i\) 的时候可以根据 \(p_l\) 和 \(p_r\) 的大小关系判断删的是 0 还是 1。

所以 0 是 \(<\),1 是 \(>\),? 是没有限制,问题就变成了 「LibreOJ NOI Round #2」不等关系 ,简单 cdq 一下就行了。

470. loj3958 「联合省选 2023」过河卒

搜索出所有的状态,一个状态是必胜态当且仅当它有必败态儿子,一个状态是必败态当且仅当它全是必胜态儿子,否则就是平局。类似拓扑排序,能被排序到的就是有胜负的,否则就是平局。

471. loj3959 「联合省选 2023」填数游戏

把 \(T_{i,0}\) 和 \(T_{i,1}\) 连边,搞出的连通块要么是树,要么是基环树,否则就寄了。

那么相当于每条边有四种情况:两端都不能加/只能加其中一端/两端都能加,第一个人要给每条边确定加哪边,第二个人要选一个代价最小的子集。

如果是基环树,就很简单:树上的边已经确定方向,环上的边就是 \(\min(a+c,b+c,{a+b+c \over 2})\)。

如果是树,先把所有边外向,找到值最小的儿子,把它到根的路径拉出来,把其中一个前缀反向。可以用线段树暴力维护。

472. loj3847 「NOI2022」众数

暴力题。我使用的是求出中位数和查询中位数出现次数。用了链表维护若干序列。

傻逼 uoj 机子太慢了,卡我常,加了 IO 才过。

473. loj3848 「NOI2022」移除石子

感觉完全会不了这种题啊 /ll。

首先操作 2 的长度只能是 3,4,5,并且不会有操作区间相等的操作 2。

大概可以设一个 \(dp\) 判定 \(K=0\) 是否合法:\(f_{i,j,k}\) 表示 \([1,i]\) 内所有操作都已经做完,\([i,i+1]\) 区间内一共有 \(k\) 个区间覆盖,其中从 \(i\) 开始的有 \(j\) 个。经过一些奇异的分析,可以搞出 \(j \leq k,j \in [0,2],k \in [0,3]\),并且 \(j = 0,k = 3\) 这个状态完全没用。

然后有厉害的观察:

  • 恰好为 $K $ 和至多为 \(K\) 的差距不大!
  • \(a_i \leftarrow \min(a_i,4)\),状态不变。

爆搜出所有状态转移即可。

474. xsy5006 逆序对 (inversion)

暴力数位 \(dp\) 即可。

475. xsy5009 括号串 (bracket)

考虑括号折线的最小值,若最小值 \(< -1\),显然会一直用操作一抬高最小值。否则若最小值 $ = -1$,若只有一处最小值,即使用操作二,否则继续使用操作一。

476. xsy5010 构造字符串 (string)

考虑 SA 告诉了我们什么,写出 \(sa\) 数组,显然 \(c_{sa_i} \leq c_{sa_{i+1}}\)。当 \(rk_{sa_i + 1} > rk_{sa_{i+1} + 1}\) 时,有 \(c_{sa_i} < c_{sa_{i+1}}\)。马拉车告诉了我们一堆相等和不等关系,贪心构造即可。

477. loj3850 「NOI2022」挑战 NPC Ⅱ

大概记 \(match(u,v)\) 表示 \(G_u\) 和 \(H_v\) 能否匹配。发现合法的情况里,需要递归的儿子不会太多,暴力做即可。

478. loj3851 「NOI2022」冒泡排序

很厉害的题!题解先咕了。

479. loj3852 「NOI2022」二次整数规划问题

很厉害很厉害的题!题解先咕了。

480. xsy5306 火车站

481. xsy5307 序列(mex)

482. xsy5308 KMN の培养皿(biology)

标签:谭哥,log,2023.12,线段,NOI2022,18,区间,sa
From: https://www.cnblogs.com/ZHANG-SHENG-HAO/p/17922926.html

相关文章

  • 18. git fetch origin但是我远端没有这个分支啊 ,我只有master分支
     如果你执行了gitfetchorigin,但是远程仓库并没有origin分支,这是正常的。这个命令会从远程仓库(通常命名为"origin")中获取所有分支和标签的最新信息,而不仅仅是origin分支。在Git中,origin通常是默认的远程仓库名称,而不是一个分支的名称。如果你只有master分支,gitfetch......
  • 雅礼 2023.12.20 习题课记录(讲解版)
    雅礼\(2023.12.20\)习题课记录(讲解版)前言AlwaysCF,NeverAT。又双是CF题,只能说“水”,AK了。水题(只放代码)B-TwoVessels(CF1872A)有分别装有\(a,b\)单位水的两个杯子,容量无限大。现在有一个勺子,容量为\(c\),每次可以从一个杯子里舀一勺不超过\(c\)单位的水(\(c\)......
  • 2023.12.22——每日总结
    学习所花时间(包括上课):9h代码量(行):0行博客量(篇):1篇今天,上午学习,下午学习;我了解到的知识点:1.设计模式明日计划:学习......
  • CF1881F Minimum Maximum Distance 题解
    因为白点对\(f_i\)没有贡献,所以可以重构出一棵原树的子树,使得所有的叶子都为标记点且标记点数量不变(没有删去标记点)。因为没有标记被删去且结构不变,所以这棵树的答案与原树答案相同。现在,对于所有节点,到它距离最大的标记点一定在叶子上。那么问题就变为:求出树上任意一点到所有......
  • ubuntu18离线安装mysql8.0
    参考文档Ubuntu中使用apt下载离线包以及相关依赖包-厚礼蝎-博客园(cnblogs.com)ubuntu18.04安装mysql8.0详细教程及踩坑解决方法(包含删除Mysql5.7版本方法)_ubuntu编译安装mysql-CSDN博客如何配置MySQL8中的lower_case_table_names来让其忽略大小写?–就是这个范儿(thi......
  • 2023.12.22~ 做题记录
    1.ICPC2022Xi'anRABridge感觉很妙啊,应该不止蓝吧?首先一个转化是每次建桥操作就相当于交换两条链的后半部分,可以看看扶苏那篇题解的图。我们将每个点表示为形如\((x,y)\)的二元组表示它初始在第\(x\)行第\(y\)列,按\(y\)为键值排序,那么一次询问就是查询一条链的最......
  • Ubuntu18下实时Linux内核的编译安装记录(保姆级)
    本人系统是虚拟机上的ubuntu18,过程参考了以下3个链接:https://blog.csdn.net/huangjunsheng123/article/details/116202848https://blog.51cto.com/u_15899439/5907513https://kunaly.blog.csdn.net/article/details/101111502?spm=1001.2101.3001.6650.3&utm_medium=distribute......
  • CF187A 题解
    原题传送门题目大意如题意翻译。思路分析很水的一道题目,可以将第一个排列\(a\)看作最终排列,接下来每输入一个数,让它与\(a_m\)进行比较,直到两个排列相同。最后看题目范围,\(1≤n≤2\times10^5\),时间复杂度\(\mathcal{O(n)}\),空间复杂度\(\mathcal{O(n)}\)。代码:/*Writ......
  • 闲话 2023.12.21
    网易云年度报告今天进行一个好题的分享,感觉我整个尬在台上了,选的题太简单了差点被创汇一的nb人士给切了......
  • day18 -基于Consul的自动发现 -告警平台部署管理-告警平台高级配置 (7.6-7.8.2)
    一、基于Consul的自动发现1、背景Prometheus配置文件prometheus-config.yaml配置了大量的采集规则,基本上都是运维小伙伴手动处理,如果后面增加了节点或者组件信息,就得手动修改此配置,并热加载promethues;那么能否动态的监听微服务呢?Prometheus提供了多种动态服务发现的功能,这里......