题解p5009 2018 yloi

「题解」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

2018 - 951 数据结构

题目 一、单项选择题 1.数据的基本单位是( )。 A.数据结构 B. 数据元素 C. 数据项 D. 文件 2. 在逻辑上可以把数据结构分成( )。 A. 动态结构和静态结构 B. 紧凑结构和非紧凑结构 C. 内部结构和外部结构 D.线性结构和非线性结构 3.不带头结点的单链表 head为空的判定条 ......
数据结构 结构 数据 2018 951

2018 - 952 计算机网络

题目 一、填空题 1.计算机网络协议的三个要不分别是 语法、 语义和 ① 。 2. IPv6 地址采用 ① 比特位表示。 3.典型的三种传输损伤包括 ① 、失真和噪声。 4. ICMP 报文封装在 ① 协议数据单元中传送。 5.在无线局域网中进行载波侦听多路访问时,存在 ① 问题和 ② 问题。802 ......
计算机网络 2018 952

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 = ......
模拟赛 题解 简要

[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

CF768G The Winds of Winter题解

我们考虑暴力咋做,每次得到一个森林之后,必定是从最大的树上摘一棵子树,挪到最小的树上,所以此时的答案为 \(max(siz_{mx}-x,siz_{mn}+x,siz_{次大值} )\),于是发现 \(x=\frac{siz_{mx}-siz_{mn}}{2}\) 时答案最优,所以只需找到这个值的前 ......
题解 Winter Winds 768G 768

CF238题解

CF238 Codeforces Round 148 (Div. 1) CF238A link CF238A题意 给出两个整数 \(n,m\),现在问你有多少个序列 \(a\) 满足: 序列长度为 \(n\)。 \(a_i\in[0,2^m-1]\) \(\forall 1\le i\le j \l ......
题解 238 CF

HNOI2017影魔题解

HNOI2017 影魔 对于两种贡献,都只用考虑左边第一个比自己大的,和右边第一个比自己大的数,分别记为 \(l_i、r_i\) 对于询问一,每个数对 \((l_i,r_i)\) 构成全部情况 对于询问二,可以拆分成 \(x=l_i\) 时,\(y \in [i+1,r_i-1]\) ,以及 \(y ......
题解 HNOI 2017

CF1051C Vasya and Big Integers 题解

Problem - 1051E - Codeforces Vasya and Big Integers - 洛谷 感谢女队提交记录推荐给我的一道题 \(Orz\) 首先 \(O(n^2)\) 的 \(dp\) 是 simple 的,如果你没看出来你可能是像我一样把题目看错了 设 \(dp_i\) 表 ......
题解 Integers 1051C Vasya 1051

P6922 [ICPC2016 WF] Longest Rivers 题解

Description 有 \(n\) 条河和 \(m+1\) 个交汇处构成一棵以 \(0\) 号点(即大海) 为根的树。 每条河有各自的名称。对于一个交汇处,从它流出的干流的名称是流入这个交汇处的各个支流的名称之一。一条河流的长度是以它为名称的河流的长度之和。对于一个可能的命名方案,一条河流的排名 ......
题解 Longest Rivers P6922 6922

SOJ1972 题解

题意 设 \(S\) 为一个可重数集,满足所有元素均为非负整数。你可以对 \(S\) 进行若干次(可以为 \(0\) 次)如下操作:选择一个非负整数 \(x\) 满足 \(x\) 至少在 \(S\) 中出现了 \(2\) 次,在 \(S\) 中删除一个 \(x\),并将 \((x-1)\) 或 \( ......
题解 1972 SOJ

力扣题解(1-150)

原文链接:https://gaoyubo.cn/blogs/3ecd1562.html 一、双指针 27. 移除元素 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 ......
题解 150

力扣题解(151-300)

原文链接:https://gaoyubo.cn/blogs/141ec005.html 一、双指针 151. 反转字符串中的单词 给你一个字符串 s ,请你反转字符串中 单词 的顺序。 单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。 返回 单词 顺序颠倒且 单词 ......
题解 151 300

力扣题解(151-300)

原文链接:https://gaoyubo.cn/blogs/141ec005.html 一、双指针 151. 反转字符串中的单词 给你一个字符串 s ,请你反转字符串中 单词 的顺序。 单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。 返回 单词 顺序颠倒且 单词 ......
题解 151 300