题解1738c cf

CF1896D Ones and Twos 题解

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

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

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

模拟赛简要题解

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

CF681C-Heap Operations

题外话: 下面机房 + 红名大佬 changwenxuan 已经写得很详细了,但是我觉得有些部分讲的比较粗糙,所以写了这篇题解。 原题链接 题目解析: 「insert \(x\)」 操作:直接将 \(x\) 加入小根堆。 「getMin \(x\)」 操作:表示在完整的堆操作里,堆中最小值为 x,注 ......
Operations C-Heap Heap 681 CF

[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

CF1914F Programming Competition 贪心原则的DP?

终于理解了... 希望写给小伙伴们,希望大伙可以理解。 先确定贪心规则,即当最大子树不超过根子树减一的一半时,内部节点可以完全匹配。否则,可以先拿其他子树节点与最大子树内部节点匹配,子树内部再进行匹配。啥你说子树内部不够匹配怎么办?可以这么想,你这样都到匹配上限了,已经完全可以达到最优秀情况,取ma ......
Programming Competition 原则 1914F 1914

【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

CF553

CF553 A 简单组合,略。 B Kyoya and Permutation 定义一个长度为\(n\)的排列为仅由\(1..n\)的元素组成,且每个元素恰好只出现\(1\)次的序列。我们称数值\(i\ (1\leq i \leq |p|)\)在排列\(p\)中的映射为\(p_i\)。 Kyota ......
553 CF

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

CF1917 C Watering an Array

Link 首先我们研究全是0的情况,显然的,每次操作2最多可以得到1分。 那么显然的,不如直接一次操作一一次操作二,这样是最优的。 然后再研究初始数组,很难用很快的方式得到应该从什么时候开始第一次操作二。 不过可以注意到,第一次操作2最多可以得到n分,那么我们再\(2n+1\)天以后进行第一次操作二 ......
Watering Array 1917 CF an

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

CF1909F1 Small Permutation Problem (Easy Version)

给定一个长度为 \(n\) 的数组 \(a\),其中 \(a_i \in [1, n]\),试计算满足以下条件的 \([1, n]\) 的排列 \(p\) 的个数: \(\forall i \in [1, n], \sum_{1 \le j \le i} [p_j \le i] = a_i\) \( ......
Permutation Problem Version 1909F Small

CF1909F2 Small Permutation Problem (Hard Version)

给定一个长度为 \(n\) 的数组 \(a\),其中 \(a_i \in [-1, n]\),试计算满足以下条件的 \([1, n]\) 的排列 \(p\) 的个数: \(\forall i \in [1, n], \text{有 }\sum_{1 \le j \le i} [p_j \le i] ......
Permutation Problem Version 1909F Small

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

CF1070

CF1070 和 Eric 共同处理的一套题,这里处理奇数题号。 A Description 给定两个数 $d(1\le d \le 500)$ 和 $s(1\le s\le 5000)$,找出最小数 $n$ 使得 $d\mid n$ 且$n$ 的各个位数之和为 $s$。 Solution 数字很小 ......
1070 CF

CF1850E Cardboard for Pictures

越界问题处理 这题本身很简单,二分答案就行。 但是数据很大,提前开了ULL还是越界。 short check(ll x, vector<ll> a) { ll sum = 0; for (int i = 1; i <= n; i++) { sum = sum + (a[i] + x) * (a[i] ......
Cardboard Pictures 1850E 1850 for

CF660E Different Subsets For All Tuples

题意 给定一个长度为 \(n\) 的序列。 每个数字的范围为 \([1, m]\)。 求一共 \(m ^ n\) 种数列,每个数列种本质不同的子序列个数之和。 Sol 考虑用一种比较好的方式表示答案。 枚举本质不同的子序列长度,枚举中间跳过的数的个数。 \[m ^ n + \sum_{i = 1} ......
Different Subsets Tuples 660E 660

CF1070

CF1070 注:这次CF是和 @Terdy 合作进行的,在此处挂上Ta的博客链接 portal CF1070B link CF1070B题意 联邦通信、信息技术和大众传媒监督局(Berkomnadzor)是伯利兹联邦执行机构,负责保护伯利兹普通居民免受现代互联网的威胁。 Berkomnadzor ......
1070 CF

力扣题解(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