题解inversions another problem

CF1917F Construct Tree 题解

题目链接:https://codeforces.com/contest/1917/problem/F 题意 有 \(n\) 条长度 \(l_i\) 的边,问它们是否能组成一棵 \(n + 1\) 个节点的树,使得树的直径长度为 \(d\)。\(n, d \le 2000\)。 题解 首先当然要存在一 ......
题解 Construct 1917F 1917 Tree

AT_joisc2015_h 题解

传送门 题意:给定长为 \(n\) 的字符串 \(s\),你可以选择一个区间,将区间内的字符从小到大排序,求可以得到的最长回文子串长度,字符集大小为 \(n\)。 很有意思的题目。 首先容易做到 \(O(n^3)\)。考虑怎么优化。 我们先考察排序的区间和回文区间的关系。 如果两个区间无交,那么显然 ......
题解 AT_joisc joisc 2015 AT

在不使用内置函数和中间变量的情况交换数字LeetCode力扣题解面试题16.01

#异或法#Kotlin ```Kotlinclass Solution { fun swapNumbers(numbers: IntArray): IntArray { numbers[0] = numbers[0] xor numbers[1] numbers[1] = numbers[1] xo ......
题解 变量 函数 LeetCode 情况

CF1835C Twin Clusters 题解

题目链接 点击打开链接 题目解法 很牛逼的构造题 好像随也可以过 长度为 \(2^{k+1}\) 的序列的不同区间有 \(2^{2k+1}\) 个,值域是 \(4^k\),所以一定有解 将 \(a\) 做一遍前缀和,那么问题转化成了找 \(s_{r1}\oplus s_{l1-1}=s_{r2}\o ......
题解 Clusters 1835C 1835 Twin

[P4240] 毒瘤之神的考验 题解

[P4240] 毒瘤之神的考验 题解 知道: \[\varphi(ij)\varphi(\gcd(i, j)) = \varphi (i)\varphi(j)\gcd(i, j) \]可以进行转化,之后可以化简出形如: \[\sum_{i = 1}^n g(i)f(i, n/i)f(i, m / i ......
毒瘤 题解 P4240 4240

ICPC2021Kunming G Glass Bead Game 题解

Question ICPC2021Kunming G Glass Bead Game 有 \(n\) 个玻璃珠, \(B_1,B_2,\cdots, B_n\) 每一步你可以选择一个 \(B_i\) 移道第一个位置上,花费的代价为操作前 \(B_i\) 前面的玻璃珠的个数。已知每一步选择玻璃珠 \( ......
题解 Kunming Glass ICPC 2021

ICPC2021Kunming G Find the Maximum 题解

Question Find the Maximum 给出一个树,每个点有一个权值 \(b_n\),求一条树上路径 \(V\),要求 \(\frac{\sum_{u\in V (-x^2+b_u x)}}{|V|}\) 最大,其中 \(x\) 是自己选择的一个树 Solution 先转化一下 \(\f ......
题解 Kunming Maximum ICPC 2021

AT_joisc2015_e 题解

AT_joisc2015_e 传送门 更好的阅读体验 题意 给定长为 \(n-1\) 的数组 \(b_i\),要求有多少长为 \(n\) 的数组 \(a_i\) 满足: \(b\) 数组可以由 \(a\) 数组删掉一个数得到。 存在一个排列 \(p\) 满足 \(a_i\) 是以 \(p_i\) 结 ......
题解 AT_joisc joisc 2015 AT

P8868 [NOIP2022] 比赛 题解

Description 小 N 和小 O 会在 2022 年 11 月参加一场盛大的程序设计大赛 NOIP!小 P 会作为裁判主持竞赛。小 N 和小 O 各自率领了一支 \(n\) 个人的队伍,选手在每支队伍内都是从 \(1\) 到 \(n\) 编号。每一个选手都有相应的程序设计水平。具体的,小 N ......
题解 P8868 8868 2022 NOIP

「题解」P9747 「KDOI-06-S」签到题

一个区间合法的充要条件是存在 \(x\) 满足其为区间按位或,并且《\(x\) 左侧所有数或起来》《\(x\) 右侧所有数或起来》二者有其一为 \(x\)。 扫描线扫右端点,不同的按位或将左端点分为 \(\log A\) 个区间,对于每个区间 \([l,r]\) 先在区间按位或 \(v\) 在序列中 ......
题解 P9747 9747 KDOI 06

「题解」Codeforces 1427G One Billion Shades of Grey

感谢 127 的指导/ll \(|h_u-h_v|=\max(0,h_u-h_v)+\max(0,h_v-h_u)\),那么可以把它看成这样的问题: \[\min \{\sum_{(u,v)}\max(0,h_u-h_v+w_{u,v})c_{u,v}\} \]对偶一下,问题就变为:如果两个格子相邻 ......
题解 Codeforces Billion Shades 1427G

CF396C On Changing Tree 题解

CF396C 考虑将贡献表示出来:\(\forall v\in \text{subtree}_u\),\(v\) 会加上 \(x - (dep_v - dep_u)k\),然后发现这个东西可以维护整棵子树,即把 \(x,dep_u\times k\) 和 \(dep_v\times k\) 分开计算 ......
题解 Changing 396C Tree 396

题解 P9993【[Ynoi Easy Round 2024] TEST_133】

就硬把 线段树 3 和 数列分块入门 2 揉到一起出。 维护原数组 \(a\) 及其历史最大值 \(hist\),对每个块,维护块内 \(a\) 升序排序后结果 \(p\)、块内 \(a\) 升序排序后历史最大值前缀和 \(prehist\)、块加标记 \(add\)、块历史和加标记 \(hista ......
题解 P9993 Round 9993 2024

[WC2018] 通道题解

先考虑只有两颗树要咋做,柿子先变成 \(dep_x+dep_y-2\times dep_{lca}+dist_2(x,y)\) 我们可以新建节点 \(x'\rightarrow x\),边权为 \(dep_x\),这样上面的式子可以看作枚举 \(lca\) 后,选出一个端点在不同子树中的直径,可以直 ......
题解 通道 2018 WC

ARC167D Good Permutation 题解

ARC167D 看到排列并且有 \(i\gets a_i\),就可以直接建出图来,显然是若干个不相干的环。 如果不求字典序最小,就可以直接不在同一个环中的 \(i,j\) 直接交换就可以了,因为它要求了最小化操作数。如果求字典序最小,直接从前往后扫一遍,可以用 set 维护不在这个环中且 \(j>i ......
题解 Permutation 167D Good ARC

P5513 [CEOI2013] Board 题解

P5513 容易发现,每次等价于对一个二进制数进行操作。但是这个二进制数长为 \(n\),即需要高精。但是这样支持加一和减一是复杂度会退化为 \(\mathcal{O}(n^2)\),有一个很正常的做法就压位,仿照 bitset 的做法进行操作,复杂度 \(\mathcal{O}(\frac{n ^ ......
题解 P5513 Board 5513 2013

ARC105E Keep Graph Disconnected 题解

ARC105E 正向考虑是很难的,从结果入手,发现最后一定是分别包含 \(1\),\(n\) 的两个完全图。 考虑表示出这两个人一共加了多少边:\(\frac{n(n-1)}{2}-m-x(n-x)\),\(x\) 表示点 \(1\) 所在集合的大小。 由于是判断先手还是后手必胜,所以只需看结果对 ......
题解 Disconnected Graph 105E Keep

P9032 [COCI2022-2023#1] Neboderi 题解

P9032 考试题。 发现 \(g\) 的值是若干个相同的段,且段数很少,因为每次取 \(\gcd\) 至少会将值域变为原来的一半。所以段数是 \(\mathcal{O}(\log V)\) 的。 然后就可以从小到大枚举左端点,然后枚举 \(g\) 的值,找的是最远的满足 \(\gcd(a_l,\d ......
题解 Neboderi P9032 9032 2022

【数据结构】P4338 [ZJOI2018] 历史 题解

P4338 先考虑怎么安排崛起的先后顺序最优。 但是发现好像没有一个很好的顺序去进行崛起,并且由于 \(a_i\) 的值域会很大,所以即使知道顺序应该也会难以进行维护。 转换一下方向,正难则反。考虑每个点的贡献,但是颜色不同时只会算一次,所以要钦定是哪一个点造成的贡献。令当前考虑的点为 \(u\), ......
题解 数据结构 结构 数据 历史

CF1896D Ones and Twos 题解

CF1896D 如果只有单次询问其实可以双指针,但是这个难以进行拓展。 考虑找点性质。 发现 \(a_i,v\in\{1,2\}\),从值域上下手。发现若存在和为 \(S\) 的方案,则一定有和为 \(S-2\) 的方案,因为可以直接 \(-2\) 或 \(-1-1\)。 然后就变为找最大的和为奇/ ......
题解 1896D 1896 Ones Twos

模拟赛简要题解

11.16(C0389) 100+10+50=160,rk3。 本来 BC 都应该写出来的。 A:dp 或 贪心 都可以,贪心直接从下往上覆盖即可。 B: 注意:这里的 \(\oplus\) 指的是按位或。 合法条件可以化简为:\(\oplus_{i=1}^{p}a_i = \oplus_{i = ......
模拟赛 题解 简要

D. Yet Another Inversions Problem

D. Yet Another Inversions Problem You are given a permutation $p_0, p_1, \ldots, p_{n-1}$ of odd integers from $1$ to $2n-1$ and a permutation $q_0, q ......
Inversions Another Problem Yet

[CTSC2018]暴力写挂题解

我们先将柿子变成 \(\frac{1}{2}(dis_{x,y}+dep_{x}+dep_{y})-dep'_{lca'}\) 考虑边分治,枚举断边,我们将一个点在第二棵树上的点权看成是 \(v_x=d_x+dep_x\),答案就为 \(v_x+v_y+dep'_{lca'}\) 对于每次边分治将分 ......
题解 暴力 CTSC 2018

CF1887D Split 题解

Problem - D - Codeforces Split - 洛谷 我现在水平好烂,再做下去自信心就全败没了 先考虑 \(Q=1\) 怎么做? 两种做法: 暴力枚举分界点,左右判断 暴力枚举 \(\max\limits_{i=l}^{x} a_i\),找到最靠右边的分界点位置 \(x\),判断是 ......
题解 1887D Split 1887 CF

[ABC267F] Exactly K Steps 题解

[ABC267F] Exactly K Steps 题解 思路 首先发现,如果对于查询 \((u, k), k > 0\) 可行,那么对于 \((u, k - 1)\) 也一定可行,因为往回走一步就可以了,所以对于一个点可以找到离它最远的点,根据直径的结论,这个点一定是直径的端点之一。 为了方便做, ......
题解 Exactly Steps 267F ABC

【CF30E】Tricky and Clever Password 题解(manacher + exKMP)

manacher + exKMP + 二分。 感觉是最粗暴的方法,想出来之后自己硬莽了 4k,荣获题解区最长。 Solution 约定:下文所提及到的所有的回文串,均指奇长度回文串。 显然把题目拆成两个部分,中间的回文串,以及两边相同的连续子串。考虑一下从哪个入手比较好。 忘记是咋想的了,易得从两边 ......
题解 Password manacher Tricky Clever

[SNOI2019] 网络 题解

[SNOI2019] 网络 题解 最喜欢这道题。 简要题意 给一颗 \(n\) 个节点的树和一个参数 \(d\),定义两个节点 \(x,y\) 之间的距离为 \(x\) 到 \(y\) 的简单路径上的边数。 定义一个树上连通块的权值为连通块中任意两点的距离之和。定义一个树上连通块的直径为连通块中任意 ......
题解 网络 SNOI 2019

CF1887C Minimum Array 题解

Problem - 1887C - Codeforces Minimum Array - 洛谷 有点被降智了/ll 首先区间修改显然先转化成差分序列单点修改。 显然对于相同的操作序列,\(a_i\) 的取值对答案无影响,因此我们可以先让 \(a_i\) 全部取 \(0\),最后再加回来即可 假如说操 ......
题解 Minimum 1887C Array 1887

洛谷B3647 【模板】Floyd 题解 floyd算法 求 多源多汇最短路

题目链接:https://www.luogu.com.cn/problem/B3647 floyd算法:https://oi-wiki.org/graph/shortest-path/#floyd-算法 示例程序: #include <bits/stdc++.h> using namespace s ......
题解 算法 模板 B3647 Floyd

[题解]CF1811D Umka and a Long Flight

思路 假设原题目中的 \(n\) 在本文中为 \(num\),则原长方形的长 \(m = f_{num + 1}\) 和宽 \(n = f_{num}\)。 显然对于最初始的长方形,显然是要将一个 \(f_{num} \times f_{num}\) 的长方形丢进去的,并且要么放最左边,要么放在最右 ......
题解 Flight 1811D 1811 Umka