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

相关推荐
倒头就睡的小比特2 天前
算法竞赛C++常用的STL
c++·算法
小羊没烦恼!2 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
猎头南楼2 天前
知识社区推荐系统实践:新用户冷启动与长短期兴趣建模的挑战 资深推荐算法工程师
人工智能·深度学习·算法·机器学习
旖旎夜光2 天前
力控面试题 01.01: 判定字符是否唯一(位运算) —— 题解
c++·学习·算法·leetcode·力控
wzdark2 天前
大规模并行计算中的负载均衡算法研究4
算法
Because_of_Her12 天前
并查集-听课笔记
笔记·算法·并查集
码流子2 天前
高速公路安全监测实践:碰撞监测预警+物联网底座,从感知到处置的闭环
大数据·人工智能·物联网·算法·架构
another heaven2 天前
【算法/C++ MD5算法能否逆解码?原理、C++实现与同类哈希算法对比】
c++·算法·哈希算法
wzdark2 天前
从算法设计模式看编程思维的抽象能力4
算法
2601_962218612 天前
万象生鲜系统称重自动多退少补算法解决生鲜非标品痛点
大数据·数据库·人工智能·python·算法