- 2024-09-11[ZJOI2007] 时态同步
[ZJOI2007]时态同步题目描述小Q在电子工艺实习课上学习焊接电路板。一块电路板由若干个元件组成,我们不妨称之为节点,并将其用数字\(1,2,3\cdots\)进行标号。电路板的各个节点由若干不相交的导线相连接,且对于电路板的任何两个节点,都存在且仅存在一条通路(通路指连接两个元件的
- 2024-09-07P2056 [ZJOI2007] 捉迷藏
题意:给出一个\(n\)个点的树,每个点有黑白两种颜色。初始时每个点都是黑色的。\(q\)次操作,支持:Cx将第\(x\)个点的颜色反转。G询问树上两个黑色点的最远距离。分析:尝试使用点分树,对于一条路径,可以从点分树的\(lca\)处统计,由于涉及到删除和添加两种操作,因此可以用mu
- 2024-08-07[lnsyoj539/luoguP2120/ZJOI2007]仓库建设
题意懒了(sol显然DP设计状态:\(f_i\)表示\(1\simi\)的工厂中,在第\(i\)个工厂处建设仓库的最小代价;状态转移:由题意,显然可得:\[f_i=\min_{j=1}^{i-1}\{f_j+c_i+\sum_{k=j+1}^i(x_i-x_k)\cdotp_k\}\]我们发现中间的一坨求和可以通过前缀和的方式预处理出\(sum_i=
- 2024-07-13P2120 [ZJOI2007] 仓库建设
题目大意\(n\)个工厂,每个工厂有\(p_i\)的货物,货物运输一个单位距离的费用是\(1\),工厂可以建造仓库,费用为\(c_i\)。工厂与工厂\(1\)的距离为\(x_i\)。要求将货物运送到下一个最近的仓库,求最小费用。\(1\leqn\leq10^6\)思路先考虑最基本的动规:设\(f_i\)表示在这里
- 2024-07-04Luogu P1110 [ZJOI2007] 报表统计
题目描述给定一个长度为\(n\)的整数序列\(a\),有以下三种操作:INSERTix:\(i\)位置后面添加一个新元素\(x\),下一个元素挂在这个元素后面。MIN_GAP:查询相邻元素差值的最小值。MIN_SORT_GAP:查询元素中最接近的两个元素的差值。题目解析平衡树经典题目。建立\(2\)棵平衡
- 2024-06-13C138 线段树分治 P2056 [ZJOI2007] 捉迷藏
视频链接:C138线段树分治P2056[ZJOI2007]捉迷藏_哔哩哔哩_bilibili P2056[ZJOI2007]捉迷藏-洛谷|计算机科学教育新生态(luogu.com.cn)//线段树分治O(nlognlogn)#include<iostream>#include<cstring>#include<algorithm>#include<vector>#inclu
- 2024-02-28P1110 [ZJOI2007] 报表统计 题解
考察点:STL的熟练运用。记:\(l_i\)表示序列中不超过\(a_i\)的最大数,\(r_i\)表示序列中超过\(a_i\)的最小数。开一个vectorinsert[N]存储\(a_i\)后面插入的所有数字。首先,我们使用一个multisets1来存储相邻元素的差的绝对值,然后再开一个multisets2来存储当前出
- 2023-12-20P1129 [ZJOI2007] 矩阵游戏 建模部分
link题解没一个说为什么能用最小割的...(当然可能是只有我不知道)设交换后行、列数相同的第\(x\)行和第\(y\)列(\(x,y\)为原始位置),发现它们的交点现在位于\((i,i)\),原来位于\((x,y)\)。因为无论怎么交换位置,原来的交点仍是交点。所以可以得出一个构造方案:先选定\(n\)个点
- 2023-11-29斜率优化 [ZJOI2007] 仓库建设
[ZJOI2007]仓库建设题目描述L公司有\(n\)个工厂,由高到低分布在一座山上,工厂\(1\)在山顶,工厂\(n\)在山脚。由于这座山处于高原内陆地区(干燥少雨),L公司一般把产品直接堆放在露天,以节省费用。突然有一天,L公司的总裁L先生接到气象部门的电话,被告知三天之后将有一场暴雨,于
- 2023-11-12P1129 [ZJOI2007] 矩阵游戏
挺喜欢的一题。首先我们很容易观察到一个性质:每一行和每一列上的黑色方格的数量是不变的,只能改变它在那一行和那一列的排列顺序。由此若是有某一行或某一列上没有黑色方格,直接输出No即可。此时我们考虑的情况就是每一行和每一列上至少都会有一个黑色方格。这时有一个结论:若有
- 2023-08-11[ZJOI2007]报表统计
P1110[ZJOI2007]报表统计考虑到操作MIN_SORT_GAP比较简单,用一个set维护前驱后继即可,重点关注INSERT,MIN_GAP。发现我们可以先开一个单链表来存储所有数,开数组表示原数列的第\(i\)个元素现在的位置。每次插入只需要在对应位置插入,然后更新数组的值。关于维护最小差值,用
- 2023-03-12P1131 [ZJOI2007] 时态同步
P1131[ZJOI2007]时态同步-洛谷|计算机科学教育新生态(luogu.com.cn)这更多是一个思维题 看到上面这副图,我们的想法是先让1→2和1→3拉伸到1→4的深度,再
- 2023-02-02「ZJOI2007」仓库建设
「ZJOI2007」仓库建设题意:有\(n\)个工厂,由高到底分布在一座山上,工厂\(1\)在山顶,工厂\(n\)在山脚,第\(i\)个工厂有\(p_i\)件产品,距离工厂\(1\)的距离为\(x_i\)
- 2022-11-20ZJOI2007 时态同步 树形dp
题面简述给定以\(s\)为根的一棵树,可以进行代价为1的操作使一条边权+1,求最小代价使得根节点到所有叶子节点距离相等。分析令\(sum[x]\)表示以\(x\)为子树的最大距离(根->
- 2022-11-10P2272 [ZJOI2007]最大半连通子图
原题链接题目的意思就是说找到最长路径的长度及数量。显然,我们首先要tarjan缩点,然后建立新图,但要注意的是不能有重边,因为会影响我们计算数量,那我们可以用map记录一下两点
- 2022-10-31【ZJOI2007】捉迷藏(动态树分治)
显然只有一次询问的话,可以用点分治来实现。但是现在我们有多组询问,还带有修改,我们只能通过动态点分治来做了。动态点分治的主要思想:省去每次点分治求重心的过程,直接预处
- 2022-10-30P2272 [ZJOI2007]最大半连通子图
哎,这道题打了半个小时,调了两个小时,最后发现竟然是把\(Tarjan\)里\(while\)给打成\(if\),呜呜,枉费我两个小时时间,所以下次一定要记住不能打成\(if\)(估计也就我一个