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 表示由 左/右 走到 左/右 的最大数量,同样的反着的也要求。

相关推荐
白狐_79829 分钟前
408数据结构第8章:排序②——性质对比秒杀、场景选择与外部排序
java·数据结构·算法
zander2581 小时前
LeetCode 84:柱状图中的最大矩形——单调栈如何确定左右边界
java·数据结构·算法
Shell运维手记1 小时前
Linux 常用基础命令学习笔记
linux·运维·笔记·学习·算法·github
杨航 AI1 小时前
O(n log n):线性对数原理拆解 这个是排序算法的黄金复杂度之一。
算法·排序算法
船厂电气自动化ai大模型2 小时前
AI大模型与数学 第32课 函数凹凸性与二阶导数:拐点求解、凹凸区间计算(10道二阶导数计算题)
数据结构·人工智能·python·深度学习·算法
旖旎夜光2 小时前
LeetCode 3:无重复字符的最长子串(滑动窗口) —— 题解
数据结构·c++·算法·leetcode·滑动窗口
叠层归一研究院3 小时前
AGI 系统(十一):二阶网络 — 二阶递归 × 多主体 (元符号网络)
开发语言·人工智能·算法·php·agi
zlinear数据采集卡4 小时前
D223的PWM电机控制:6路独立脉冲+加减速算法深度解析
arm开发·stm32·嵌入式硬件·算法·fpga开发·架构
杨石兴4 小时前
31、玩具MoM:用2x2矩阵串起全套流程
人工智能·算法·矩阵·电磁学
江畔柳前堤5 小时前
Function Calling 与 Tool Calling:从认知到工程的全景深度解析
开发语言·网络·人工智能·深度学习·算法·机器学习·php