题解840e cf
CF678F Lena and Queries题解
题目链接:CF 或者 洛谷 可以看到查询和插入就是李超线段树的基本操作,但在原有基础上多了一个删除操作,李超线段树不支持删除操作,但支持可撤销和可持久化,所以我们容易想到外层再套一个线段树分治即可。本题用可撤销就远远足够了,很好写。 具体的,我们读入所有操作,对于操作一,为当前下标线段读入它的 \( ......
CF914C
problem & blog 数位 dp 模板题。 经过一次操作,可以把 \(n\) 变成一个小于 1000 的数。 所以我们可以把所有小于 1000 的数操作的次数全部处理出来。 然后就是正常的数位 dp。 定义 \(dp_{s,num,lim}\) 表示剩 \(s\) 位,有 \(num\) 个 ......
CF-375-D
375-D 题目大意 给定一颗\(n\)个节点的树,根节点为\(1\),每个节点都有一个颜色\({c}_{i}\) 给定\(q\)次询问: \((x,k):\)询问在以\(x\)为根的子树中出现次数\({\ge}k\)的颜色数量 Solution 首先考虑一般暴力的做法,将所有询问离线下来,对整个树 ......
CF-342-E
342-E 题目大意 给定一颗\(n\)个节点的树,其中\(1\)号节点为红色,其余节点为蓝色 有m次操作,操作分为两种: \(1.\)把节点\(x\)变为红色 \(2.\)询问节点\(x\)到最近红色节点的距离 Solution 对于操作\(2\)首先考虑两种暴力操作 \(1.\)对每次询问的\( ......
P7293 题解
传送门 思路 提供一个不太一样的容斥做法。 首先容易发现答案只和每个点到 1 号点的奇偶最短路有关,可以先 \(O(n)\) 求出来。 然后考虑枚举距离 \(d\),计算有多少个 K 元组的距离为 \(d\)。不妨设 \(d\) 为奇数,那么条件就是: 每个点的奇最短路的最大值为 \(d\); 存在 ......
CF550C. Divisibility by Eight
题目大意 给你一个由阿拉伯数字组成的字符串,让你找出其中一个子序列,使其能被8整除 思路1 一个整数的末尾三位数能被8整除,则这个数能被8整除。 代码 #include <bits/stdc++.h> using namespace std; using i64 = long long; const ......
USACO23023DEC 题解
LG LG9979 [USACO23DEC] Target Practice S code LG9980 [USACO23DEC] Flight Routes G sol 1 已知邻接矩阵求路径数奇偶性是容易的,倒着做即可 bitset 实现。时间复杂度 \(O(\frac{n^{3}}{\omeg ......
【题解】 P4482 | 后缀自动机 树分治
一种很好写的 \(O(n\log ^2 n)\) 的做法和处理技巧,不需要会任何 border series 的知识,只需要会 SAM 和一些基础数据结构就行。 考虑 \(\text{MaxBorder}(l,r)\) 可以被写成即找到最大的 \(p \leq r - l\) 满足 \(S[l:l+ ......
【GDKOI 2024 TG Day2】不休陀螺(top) 题解
考虑一个卡牌区间怎样才不是”陀螺无限“。 一个是费用在打到一半时费用就不够了。考虑构造一个卡牌序列使其尽量能够在打到一半时费用就不够,如何构造呢? 把 \(a_i > b_i\) 的卡牌称作消耗型卡牌,其他叫做获得型卡牌。我们可以构造把消耗型卡牌全部放在前面,后面突然来个很大的 \(a_i\) 就可 ......
CF766E
CF766E Mahmoud and a xor trip 题解 CodeForces cnblogs 提供一种有点复杂但是好想的换根 dp 思路,好像没什么人写。 给定一棵树,带点权,设 \(I(i, j)\) 表示 \(i\) 到 \(j\) 的路径按位异或和,求: \[\sum_{i=1}^{ ......
CF1876C Autosynthesis 题解
Autosynthesis - 洛谷 https://codeforces.com/contest/1876/problem/C 这次也差点想出来了 \(QwQ\) 遇到这种题第一感觉是建图。把 \(i \rightarrow a_i\) 得到一个 章鱼森林 (这里忘记了每个点只有一个出边,是章鱼森 ......
【题解】QOJ 4253 robot
考虑到不管怎么变化 \(x_i\) 的值其在 \(t\) 时刻的位置都能被一个一次函数 \(x_i\times t + b\) 表示。 而且 \(b\) 是好算的,考虑到知道现在的斜率 \(k\) 和现在的时间 \(t\) 以及现在的值 \(f(t)\),则整个函数就是 \(f(x) = f(t) ......
[COCI2015-2016#2] VUDU 题解
[COCI2015-2016#2] VUDU 题解 题意 给一个长度为 \(N\) 的整数序列 \({a}\),对于其一共 \(\frac{N\times (N+1)}{2}\) 个的非空区间,求有多少个区间的平均数大于等于 \(p\)。 暴力做法 显然,可以直接枚举区间左端点 \(j\) 与区间右 ......
CF1006E Military Problem 题解
CF1006E Military Problem 题解 题意 给定一颗有 \(n \thinspace (2 \leq n \leq 2 \times 10^5)\) 个节点的树,树根为 \(1\)。 对于每个节点 \(i \thinspace (2 \leq i \leq n)\) 都有它的父节点 ......
[COCI2012-2013#2] POPUST 题解
[COCI2012-2013#2] POPUST 题解 题意 有 \(N \thinspace (2 \leq N \leq 5 \times 10^5)\) 个物品,每个物品的原价是 \(b_i\) 元。每次选物品时,第一件选出的物品 \(i\) 价格变为 \(a_i\) 元,问选 \(i \th ......
Meaningful Mean 题解
[ARC075E] Meaningful Mean 题解 题意 给一个长度为 \(N\) 的整数序列 \({a}\),对于其一共 \(\frac{N\times (N+1)}{2}\) 个的非空区间,求有多少个区间的平均数大于等于 \(k\)。 暴力做法 显然,可以直接枚举区间左端点 \(j\) 与 ......
【题解】CatOJ C0458C 滑动窗口定期重构
标题 trick 的名字我也不知道是什么,就这样吧。 link。 首先有显然的 dp 式子:\(f(i)=\min \{f(j) \times \max\{a_{j+1},\dots,a_i\}\}\)。考虑怎么去优化它。 有显然的 \(\mathcal O(n\log n)\):考虑线段树优化 d ......
1.11模拟赛 T1题解
简要题意 \(n\le 10^3 , \sum K_i\le3\times10^5\) 思路 首先容易想到一个暴力DP,\(f_{l,r,x}\) 表示区间中最大值为 \(x\) 的最大值 稍微想亿下可以发现如果这个位置选的不是区间最大值的话,答案一定不优 所以我们可以直接 \(f_{l,r}\) ......
AT_joisc2018_b 题解
AT_joisc2018_b 题解 传送门 题意 有一个以原点为中心的正方形,有 \(n(n\le 100)\) 条不在正方形内部的线段,你需要画一些不在正方形内部的线段,使得这些线段可以把正方形围起来,要求最小化你画的线段的长度和。 思路 我们需要画出一条闭合折线,并且能够把正方形包围。 考虑我们 ......
1.11模拟赛 T2题解
简要题意 每个点有一定概率向前面的点连边,求两点之间距离的期望 思路 推柿子 code #include<bits/stdc++.h> using namespace std; #define int long long #define N 1000005 int n,m,u,v; const in ......
CF455A补题
思路 取与不取的问题,用dp就行 ac代码 #include <bits/stdc++.h> using namespace std; using i64 = long long; const i64 inf = 8e18; typedef pair<int, int> pii; const int ......
P4103 [HEOI2014] 大工程 题解
题目链接:大工程 先考虑只有一次查询,很显然我们可以暴力树上 dp 处理出答案。 对于每个节点而言,有: 容易看出类似点分治逐个遍历子树计算前面一堆子树对后面子树的贡献思想,我们可以很容易的知道: 对于路径总和,显然多了一段新的贡献,这段贡献为当前关键点和前面点多的一段 \(2\) 号路线长。这段长 ......
CF1374D(补题)
思路 用map记录有多少个相同的(a[i]%k)的值,然后利用等差数列求和公式求最大值就行。 比如a = [6, 7, 5, 9, 50, 31], 且k = 3。a[i] % k --> a = [0, 1, 2, 0, 2, 1]。x要分别为2 5 才能使得a[2]和a[6]满足题目要求 ac代 ......
CF1244E
CF1244E Minimizing Difference 题解 Codeforces 闲话 吐槽一下,ABC330F 比此题严格更强,但是它评了绿,这题评了蓝。(个人感觉大概都是绿。) 题解 给你一个序列 \(a_i\),一次操作将一个数的值增加 \(\pm1\),进行至多 \(k\) 次操作后, ......
CF914E
CF914E 题解 题面有点不清晰,翻译一下。 给定一棵树,每个点上面有一个字母。定义一条简单路径回文,当且仅当路径上的字母任意排列后可能成为回文串。对于每个节点,求经过它的回文路径数量。一个点也构成一条回文路径。 容易想到,路径上字母出现次数全为偶数时满足条件,有一种字母为奇数时也满足。树上路径统 ......
CF1681D
CF1681D Required Length 题解 Codeforces 不一样的解法。 写完一看,标签里不是有 dp 吗,居然没人写。来提供一个动规做法。 本文中的 \(x\) 和 \(n\) 都是指输入的 \(x\) 和 \(n\)。\(\operatorname{set}_i\) 表示 \( ......
CF543D
CF543D 题解 CodeForces 独立做出来了,开心。 考虑从 \(x\) 出发、到叶子的一条链,中间有了一条“不良的路”后,后面的边一定都是“改善的路”。 设 \(f_i\) 表示 \(i\) 的子树内的方案数,\(ans_i\) 表点 \(i\) 的答案。 \(f\) 利用乘法原理转移( ......
CF1851G
诸位大佬把思路讲的很清晰了,我主要补充一下实现。 思路 考虑:如果一个询问的答案是肯定的,它对路径上所有点的要求。 询问为 a b e。 因为只有 \(e\) 点能量,所以能走到的最大高度只有 \(h_a + e\),没有最小高度。若路径上所有点的点权都在这个范围内,这个询问成立。 问题转化成:\( ......
CF915F
Codeforces Round 915 F 题解 定义 \(f(u, v)\) 表示 \(u\) 到 \(v\) 路径上的最大与最小点权之差,求: \[\sum_{i=1}^{n}\sum_{j=i}^{n}f(i,j) \] 定义 \(\max(u,v)\),\(\min(u,v)\) 为路径最 ......