1830d tree mex cf

CF803G Periodic RMQ Problem

题目描述 给你一个序列\(a\) 让你支持 \(1\) \(l\) \(r\) \(x\) 区间赋值 \(2\) \(l\) \(r\) 询问区间最小值 我们觉得这个问题太水了,所以我们不会给你序列\(a\) 而是给你序列一个长度为\(n\) 的序列\(b\) ,把\(b\) 复制粘贴\(k\) 次 ......
Periodic Problem 803G 803 RMQ

CF1316D Nash Matrix(构造/dfs)

题目 第一次做构造题,做了两节晚自习 qwq 一开始我完全是正着想,首先 \(X\) 是显然的,但其他的点就不好做了, 然后我就想,可行的一般结论推不出,那就想反例,然后我想啊想......倒是想到了几个,比如说环与环之间不能有相交,环内外的点不能互相到达,跟本举不完,而且也不好实现,还是要想一般结 ......
Matrix 1316D 1316 Nash dfs

CF1895

CF1895 D 考虑将原条件转化为 \(b_{i+1}=b_{i}\oplus a_i\),那么确定了 \(a_0\) 就可以确定所有 \(b\) 。暴力是枚举 \(a_0\),计算所有 \(b\) 的最大值,考虑在 trie 上计算异或最大值。 其他做法:按位考虑,每位只有两种方法,考察 \(c ......
1895 CF

CF1485F Copy or Prefix Sum 题解

思路 考虑 \(a_i\) 要么是 \(b_i\) 要么是 \(b_i - s\)。 考虑 \(s\) 代表着什么。 它是 \(a\) 的前缀和。 那么必然是往前一段 \(b\) 的和。 因为每个 \(b\) 代表着要么是这一位的 \(a\) 或者前面所有的 \(a\)。 考虑设 \(f_i\) 为 ......
题解 Prefix 1485F 1485 Copy

CF1485E Move and Swap 题解

不要什么脑子的带 \(log\) 做法。 思路 考虑 \(dp_{i,j}\) 表示红点到 \(i\),蓝点到 \(j\) 的最大权值。 那么有: \[dp_{i,j}=\max(dp_{fa_i,pre},dp_{fa_j,pre})+|a_i-a_j| \]其中 \(pre\) 是任意一个上一层 ......
题解 1485E 1485 Move Swap

启发式合并,DSU on Tree

启发式合并,DSU on Tree 一、启发式合并 1.1传统启发式合并 启发式合并是做的一个什么事情? 给你\(n\)个集合,令\(s_i = \lbrace i\rbrace\) 选两个集合\(x,y\),把\(y\)里面的元素全部丢到\(x\)里面,令\(s_x = s_x\cup s_y\) ......
Tree DSU on

【动态规划】【动态 DP】 CF750E New Year and Old Subsequence

题目描述 定义数字串是好的当且仅当其包含子序列 2017 ,不包含子序列 2016。 定义数字串的丑陋值为最少删掉几个字符,它才能是好的,如果一直不能,就是 \(-1\) 。 给定数字串 \(t\) ,长度为 \(n\) ,\(q\) 次询问求 \([l,r]\) 的丑陋值。 \(1 \leq n, ......
动态 Subsequence 750E Year 750

CF1428F Fruit Sequences 题解

使用了一种和大多数题解不同的做法。 虽然是带 \(log\) 的。 思路 首先考虑如何求一个固定左端点的答案。 我们发现,每个答案会随着右端点的递增单调不降。 而每个答案在增加时会形成若干个区间。 例如: 11101010111111 我们答案增加的区间即为: 11100000000111 可以发现 ......
题解 Sequences 1428F Fruit 1428

CF1043F Make It One

题目描述 给你一个长度为 \(n\) 的序列 \(A_i\) ,问你最少能从这个集合中取出多少数使得其 \(\gcd=1\) 数据范围 \(1\leq n\leq 3\times 10^5\);\(1\leq a_i \leq 3\times 10^5\). 思路: 首先观察一下这个数据范围,其中小 ......
1043F 1043 Make One CF

CF1383C

solution 先做 easy version(A题) 只需考虑小写字母点对。每个小写字母是图里一个节点。 相当于给定一些 \((x_i,y_i)\) 的限制。 然后在图中连边,每个连边表示一次操作,把部分起点的字母变成终点的字母。 要求所有 \(x_i\) 可达 \(y_i\),求最小连边数量。 ......
1383C 1383 CF

Planting Trees and Glasses--- Holding Back Soil Erosion

Planting trees and glasses 植树种草 Ganzhou, a typical red soil hilly area in Jiangxi province, is a pilot area for high-quality development of soil and w ......
Planting Glasses Erosion Holding Trees

[题解]CF938G Shortest Path Queries

Shortest Path Queries 给你一张无向连通图,支持三种操作: 插入一条边 \((u, v, w)\)。 删除一条边。 求 \((u, v)\) 之间的异或最短路。 \(n, m, 1 < 2^{30}\)。 先考虑异或最短路怎么求,这部分和 最大XOR和路径 是一样的。就是把图上的 ......
题解 Shortest Queries 938G Path

树状数组(Binary Index Tree)

一、问题引入 Logu P3374 模版题--树状数组。 初始化一个数组,接下来进行若干次以下操作: 单点修改:将某个元素的值进行修改 区间访问:返回该区间的总和 问题分析 如果通过简单索引操作,“1”的时间复杂度为 O(1),“2”的时间复杂度为O(n),其中如果使用一个dp表的方式来存储前n项之 ......
数组 Binary Index Tree

[题解]CFgym103470E Paimon Segment Tree

Paimon Segment Tree 区间加,求一段时间内的区间平方和。 \(n, m, q \le 5 \times 10^4\)。 对时间维差分一下,变成询问区间历史平方和。 离线下来扫描线,扫描线维护时间维,数据结构维护序列维。 考虑维护二元组 \((a, s)\) 表示当前位置值为 \(a ......
题解 103470E Segment 103470 Paimon

CF240F TorCoder

\(\text{Links}\) CF240F TorCoder - Luogu Luogu Blog 题外话 今天小卖部有可爱多,但是发生意外导致我没有吃到,破防了,我真的破防了。 今晚的饭不难吃。 不懂这题怎么评到 *2600,感觉虚高。 好吧代码写得有点长。 尝试了黑树所说的东西,感觉挺好! ......
TorCoder 240F 240 CF

cf1415D. XOR-gun(思维)

https://codeforces.com/problemset/problem/1415/D 从高位到低位考虑,需要注意的是我们的最后一个数可能是有后面的数异或来的,需要记录异或了几次(下面会说) 如果当前这一位全都为0,直接下一位 如果当前这一位出现了至少4个1,那么答案为1。 如果只有一个1 ......
思维 XOR-gun 1415 XOR gun

【题解】CF1142E - Pink Floyd

CF1142E - Pink Floyd https://www.luogu.com.cn/problem/CF1142E 粉边构成 dag 的做法显然。 然后就是不构成 dag,那么我们可以枚举没有遍历到的点求一个 dfs 生成树,dfs 生成树的性质是删掉的边只会是返祖边,返祖边连接的两个点就不 ......
题解 1142E Floyd 1142 Pink

CF1381D The Majestic Brown Tree Snake

原题链接 膜拜 APJ 大神。 某人说这个题让他联想到“詹天佑”了。 考虑将图画成——给定链在最上方,不在给出链上的点都相当于挂在这条链上某个点上的树。 有两种情况:一种情况是进入一颗树,在其中完成调头,然后原路返回;还有一种情况是进入一颗树,然后出去的时候走向进来的反方向,然后再倒着回去。 第一种 ......
Majestic 1381D Brown Snake 1381

cf908(div2)题解(补题)

纪念这次div2让我上绿名,但还是有点遗憾,差一点就可以过三题超神了 比赛链接cf908div2 A 这题是个骗人题,整个比赛会停下来就是一个人赢够了回合数,那么在谁这停下来就是谁赢了整个比赛,不用管每回合赢得规则。 #include<iostream> using namespace std; # ......
题解 div2 908 div cf

CF765E

分享一种我认为很优美的解法。 首先发现,如果有一个点 \(root\) 使得以它为根,所有叶子深度相等,那么这一定是可行的。可以想象成将它拎出来并且把其他点横向拍扁。 然后,容易发现两个 \(root\) 相同的,满足上面要求的树组合在一起也是可以的,即分成上下两部分分别拍扁。 所以可以想到,如果能 ......
765E 765 CF

CF650D 题解

一、题目描述: 给你一个长度为 $n$ 的序列 $a_1\sim a_n$,$0 \le a_i \le 1\times 10^9$。 现在有 $m$ 次操作,第 $i$ 次操作将位置 $p_i$ 的数变为 $v_i$,$1\le v_i\le 1\times 10^9$。 操作仅对本次有效,并不会 ......
题解 650D 650 CF

『题解』CF213E - Two Permutations

Luogu CodeForces 首先数据范围是 \(2\mathrm{e}5\),支持枚举,问题留给了判断子序列。不简单想到了哈希,一开始想到的是树状数组,发现树状数组比较菜,就转向了线段树。 一开始先把 \(b\) 中的 \(1\sim n\) 加到线段树里,然后不断的删除最小的,加入最大的,这 ......
题解 Permutations 213E 213 Two

PAT 1099 Build A Binary Search Tree

1099 Build A Binary Search Tree 30分 题目描述:告诉了BST的结点下标关系、结点值,求BST的层次遍历序列。 vector<int> in; // 保存中序序列 int Tree[105][2]; // 保存结点与左右孩子结点之间的下标 map<int,vector ......
Binary Search Build 1099 Tree

vue 项目使用element ui 中tree组件 check-strictly 用法

属性 check-strictly: 在显示复选框的情况下,是否严格遵循父子互相关联的做法,默c认为 false。 默认false,父子关联。 点击父节点,其下子节点全部统一跟随父节点变化,点击子节点,子节点部分勾选时,父节点处于半选状态。 设置为true,严格遵循父子不互相关联。 就是点击全选的话 ......

CF1895D

analysis 看到这个类似差分的样子,想着对它进行转化,通过对题目给出的式子进行变形,我们可以得到下面的式子。 \[a_i = b_i \bigoplus b _ {i + 1} \]\[\begin{aligned} b_{i+ 1} &= b_i \bigoplus a_i \\ &= b_ ......
1895D 1895 CF

[CSP-S 2023] 消消乐 & CF1223F 题解

LG9753 CF1223F 我们称一个字符串是可消除的,当且仅当可以对这个字符串进行若干次操作,使之成为一个空字符串。其中每次操作可以从字符串中删除两个相邻的相同字符,操作后剩余字符串会拼接在一起。 You are trying to push array elements to the stac ......
题解 CSP-S 1223F 2023 1223

CF351B Jeff and Furik 题解

summarization 有一个长为 \(n\) 的排列 \(p\), 现有甲乙两人轮流执行操作,甲是先手: 甲每次可以交换 \(p\) 中相邻的两个数 \(p_i,p_{i+1}\) 乙每次等概率执行下面两种操作的一种: 选择一对 \(p_i,p_{i+1}\),且 \(p_i\le p_{i+ ......
题解 Furik 351B Jeff 351

[CF1588F] Jumping Through the Array

不妨认为 \(n,q\) 同阶。 考虑根号重构。如果没有第 3 种操作的话,我们每 \(\mathcal O(\sqrt n)\) 操作整体更新一次,每个询问只需要考虑块内的修改所在置换环上有多少 \([l,r]\) 内的数。这个是容易 \(\mathcal O(n\sqrt n)\) 做的。 然后 ......
Jumping Through 1588F Array 1588

CF1436E Complicated Computations

CF1436E Complicated Computations 题目描述: 求一个数列的所有子区间的 mex 值的 mex 某个数组的 mex 是这个数组中没有包含的最小正整数。 数据范围: \(1\leq n\leq 10^5,1\leq a_i\leq n\) 思路: 分析一下题目的流程,他先 ......
Computations Complicated 1436E 1436 CF

CF练习题19

Paths on the Tree 贪心题,因为对于每一个儿子,经过的路径数之差少于 \(1\),所以这道题可以理解为先把所有路径均分,然后把剩下的按照权值大小依次分布给那些儿子。 那么儿子传给父亲的权值又是如何处理呢? 首先,我们需要把父亲首先传递过来的 \(k\) 条路径均分,然后把剩下的最大路 ......
练习题