20260522

A - CQOI2014 排序机械臂

题意:有 nnn 个物品,每个物品有一个高度(可能相同)。排序过程:第 iii 次操作(iii 从 1 到 nnn)时,找到当前序列中第 iii 低的物品(相同高度按初始顺序保持稳定)所在的位置 PiP_iPi,然后将区间 i,Pii, P_ii,Pi 翻转。你需要输出每次操作前的 PiP_iPi。n≤105n \le 10^5n≤105,高度 ≤107\le 10^7≤107。


可以直接使用平衡树,比如 FHQ-Treap。查询最值位置,以及类似文艺平衡树的操作。

B - TJOI2007 小朋友

题意:有 NNN 个小朋友(1≤N≤2001 \le N \le 2001≤N≤200),MMM 对矛盾关系(无向边)。矛盾图满足性质:图中不存在长度超过 333 的环(即所有环的长度均为 333 或更小,等价于无长度 ≥4\ge 4≥4 的环)。求最多能选出多少个两两之间没有矛盾的小朋友,即求该图的最大独立集的大小。


不会有超过 333 个点的环,那么它图形一定是类似于若干颗树,在它的旁边连边,形成 333 个点的很多个环,且这旁边的边不能相交(不然就会形成超过 333 个点的环)。

其实本质上相当于求一个最大独立集,想办法将环的矛盾关系变成一个二分图。

这显然是不可能的,对于一个 333 个点环,无论如何黑白染色,都不可能使任意两条边两边的颜色不等。

用网络流解可能不大行,但是对于一般图而言也有 "总点数 = 最大独立集 + 最小点覆盖"。

所以说,只要能在这个类似树的结构中求出最小点覆盖就可以了。

首先,树与树之间互不影响,答案累加即可。对于一颗树(是一个生成树,旁边的边类似虚边,不表示父子关系)而言,对于一个点的连边而言,祖先连过来的实边只有一条(父节点那条),虚边最多也只会有一条(只会出现在有环时)。


后来听说可以圆方树,发现貌似就是板啊。

建出圆方树后,用 dp 求解。

对于方点,则用 dpi,0/1dp_{i,0/1}dpi,0/1 表示这个方点是周围的原点否存在原点被选。

对于圆点,则用 dpi,0/1dp_{i,0/1}dpi,0/1 表示这个圆点是否被选。

转移较为容易,这样是 O(n+m)O(n+m)O(n+m),n≤200n\le200n≤200 ?!

C - ZJOI2011 道馆之战

题意:有一棵 nnn 个节点的树,每个节点有两个区域 A 和 B,每个区域是冰面(.)或障碍(#)。挑战者从节点 uuu 出发,只能沿着 uuu 到 vvv 的唯一路径向 vvv 移动,移动规则为:每次可以移动到路径上下一个节点的同一区域,或停留在当前节点切换到另一区域(前提是目标区域为冰面且未经过)。每个冰面只能经过一次。起点可选择 uuu 的任意冰面。求从 uuu 出发到 vvv 能经过的最多冰面数。若 uuu 的两个区域都是障碍,输出 000。需要支持两种操作:修改某个节点的两个区域,或回答查询 Q(u,v)Q(u,v)Q(u,v)。n≤50000,m≤100000n \le 50000, m \le 100000n≤50000,m≤100000。


先考虑没有修改操作,如果都是 ..,则走的形状是一个类似螺旋的,当走的次数为奇数,需要改变位置(也就是原本在左边的要变成右边,右边变左边),否则不变。由于有障碍物的限制,相当于在某个位置必须走左边或者右边。

对于一次查询,相当于查找在哪个位置第一次是得原本从左边或右边出发都不满足。由于又有修改操作,所以可以用树链剖分。对于线段树中的一个段,可以记录,假如一开始从左边出发,最后是在哪个位置(假如走不到,就记录一下终止位置),反之同理,正反都要记录一下,因为有一部分是往父节点方向走的。修改,直接在线段树它所在的位置修改就可以了。


后来对拍的时候才发现,理解错题意了,它是求最多能走多少个格子。但是基本上也是一样的,改成用 dis0/1,0/1dis_{0/1,0/1}dis0/1,0/1 表示由 左/右 走到 左/右 的最大数量,同样的反着的也要求。

相关推荐
复杂网络4 小时前
多个 Claude Code 与多个 Codex 协同工作:设计与实现方案
算法
HjhIron20 小时前
面试常客:字符串算法从入门到进阶
算法·面试
吴佳浩21 小时前
DeepSeek DSpark:Confidence-Scheduled Speculative Decoding 技术解析
人工智能·算法·deepseek
触底反弹1 天前
🧠 搞懂 Token,才算真正入门大模型——从分词原理到 Embedding 语义实战
javascript·人工智能·算法
vivo互联网技术1 天前
ICLR 2026 | 基于后验采样的图像恢复方法LearnIR:人脸去阴影、去雾
人工智能·算法·aigc
浮生望1 天前
JS字符串与回文算法:从包装类到双指针的面试进阶之路
javascript·算法
黄敬峰1 天前
面试必刷:从JS底层包装类到双指针,彻底搞懂字符串与回文算法
算法
地平线开发者2 天前
J6B vio scenario sample
算法
BothSavage2 天前
Trae远程开发中DeepSeek自定义模型4054错误的排查与修复
算法