题解1525f cf

CF401D Roman and Numbers

`2023-07-25 20:41:07 solution` [原题链接](https://www.luogu.com.cn/problem/CF401D) # 思路 看到这个数据和范围,果断数位 dp。 因为同一个数字交换顺序是一样的,所以我们直接把它们合并即可。 设计状态,观察到每个数字的个数不 ......
Numbers Roman 401D 401 and

CF446C DZY Loves Fibonacci Numbers

`2023-07-18 20:49:31` ## 思路: 一开始的思路是每次存两个值,因为任意两个斐波那契数列合并之后仍然满足斐波那契的基本性质 $f[x]=f[x-1]+f[x-2]$。 但是发现这样子每次修改直接的总和得暴力递推求,复杂度爆炸。 为了解决这个突破口,稍微借鉴了一下题解的斐波那契数 ......
Fibonacci Numbers Loves 446C 446

AT_dp_v Subtree 题解

`2023-07-24 20:16:31 AT_dp_v 题解` [AT_dp_v Subtree](https://www.luogu.com.cn/problem/AT_dp_v) # 思路 考虑树形 dp,假设根左右子树的连通块已经算出来了,我们用 $f[x]$ 表示强制将 $x$ 染色,$x ......
题解 AT_dp_v Subtree AT dp

D班第一次模拟赛 C题题解

`2023-07-21 15:02:47` ### 写不动数据结构了,下午打打D班的模拟赛玩玩。 # C. [2023暑假D班第一场模拟赛]爱新撅罗 ## 题面: 小X穿越了,发现自己成为了一个小人,正准备为一位清朝王爷服务。只要好好地服务,王爷就有赏。 一开始,小X的赏赐是 $a_0$,满足 $0 ......
模拟赛 题解 第一次

CF1806E Tree Master

`2023-07-19 10:59:11` 思路来源于题解:https://www.luogu.com.cn/problem/solution/CF1806E 算法:根号分治+记忆化搜索。 因为每一个查询都是同层的,我们可以只记忆层数少的(小于$\sqrt n$),对于层数多的层,如果大于$ \sq ......
Master 1806E 1806 Tree CF

CF1768E wonderful jump

`2023-03-01 16:50:41` ```cpp #include using namespace std; typedef long long ll; inline ll read(){ ll x=0;char c=getchar(); for(;!isdigit(c);c=getchar ......
wonderful 1768E 1768 jump CF

Ryoku 的探索题解

`2022-09-02 15:14:44 P6037 题解` ### 闲话 当我看见这道绿题的时候,一时没有任何思路(没有看懂作者让我们干什么),看过一些题解的题意分析的我还是不是很清楚(语文太差了),于是,通过对样例的分析,我终于看懂了,题意明白后代码还是好写的(自己模拟才是最靠谱的)。 ## 题 ......
题解 Ryoku

P6273 魔法 题解

`2023-05-20 14:34:56 P6273 题解` 原题链接 [魔法](https://www.luogu.com.cn/problem/P6273) ## 题目分析 题目的意思就是让我们求每个字母出现次数相同且不为空的子串的个数。 ## 基本思路 然后我们能想到维护一个前缀和数组,然后判 ......
题解 魔法 P6273 6273

Number 题解

`2022-08-26 13:02:02` [原题戳这!](luogu.com.cn/problem/P8482) ## 如何求最大乘积 我们令 $num1$ 为前几位较大的数, $num2$ 为前几位相对较小的数。 ### 浅浅地证明 首先我们肯定得使高位尽可能大,那么在高位都尽可能大的情况下,两 ......
题解 Number

Binary search题解

`2022-08-26 12:34:22` [原题戳这!](https://www.luogu.com.cn/problem/P8481) ## 题意分析 不难看出,这道题是一个对于二分查找中 $mid$, $l$, $r$ 如何取值使得总查询次数最少问题。 这个 $w$ 是影响最终结果的决定性因素 ......
题解 Binary search

P8453 美元巨大题解

`2022-08-11 16:45:02 洛谷题解` 比赛的时候乍眼一看这么多 $2$ 直接不想写了,结果在重现赛重现看的时候感觉没有那么难了,就勇敢去贪就好了。 ## 贪心思路 首先,我们很容易得到,无论前面有重复出现了多少次该位的数,不管它前面是被异或了还是或了,我们只需要在该位最后一次出现的时 ......
题解 P8453 8453

SP19147 INS14F - Save CodeVillage题解

# 思路 任意两个序列都有至少一个相同的元素,但相同的元素不必在相同的位置。 保证每两个之间都要有相同的元素? 我们先考虑一下 $n=k\times 2$ 的情况,此时如果你左边取一半,右边取一半,这时两边的元素才可能不一样。 那么当 $n using namespace std; typedef ......
题解 CodeVillage 19147 Save 14F

CF1851C题解

一道贪心题。 根据题意,我们需要在原序列中找出一条从 $1$ 到 $n$ 的路径,这条路径能被分成几个长度为 $k$ 且颜色相等的连续段。我们可以将这个问题简单化,那么这个问题就能被转化为从 $1$ 开始向后找一个颜色连续段,从 $n$ 开始向前找一个颜色相同的连续段,只要这两个连续段不相交即可,代 ......
题解 1851C 1851 CF

CF232B题解

我们首先可以观察到这道题的 $m$ 很大,所以要考虑这么多列里面是否存在一个性质,让我们求出前 $n$ 列之后快速求出后 $m$ 列的答案。观察一下可以发现第 $i,j$ 两列的答案等价时满足 $i \equiv j \pmod n$。这样的话我们只需要求出前 $n$ 列的答案即可。记 $s_i$ ......
题解 232B 232 CF

CF222E题解

这道题显然是一道 dp。转移方程式也很好推,我们记 $f_{i,j}$ 为前 $i$ 位且第 $i$ 位为 $j$ 的 DNA 序列数量。而对于输入的字符串,我们用 $vis_{i,j}=0$ 表示第 $i$ 个字母后面不能放第 $j$ 个字母。那么转移方程式即为: $$f_{i,j}= \sum ......
题解 222E 222 CF

CF1178F1题解

# CF1178F1题解 根据题意,每次选择一个区间染色,我们可以发现这道题满足了区间 dp 的一些性质,即区间答案可以合并,大区间的答案可以由小区间的答案更新而来。那么我们就可以设 $f_{i,j}$ 表示区间 $i$ 到 $j$ 的答案,那么接下来就考虑如何转移。然后考虑到题目要求从 $1$ 到 ......
题解 1178F 1178 CF F1

AT_dp_s题解

这是一道比较板子的数位 dp 。 首先观察到 $k$ 很大,肯定不能用枚举的方法求,然后就考虑用数位 dp 。对于这道题来说,我们可以在用记忆化搜索做数位 dp 的时候存一个当前各数位之和对 $d$ 取余的余数,当把数填完之后判断余数是否为 $0$ 就能判断这个数是否符合条件。 ```cpp #in ......
题解 AT_dp_s AT dp

Euclid's Game题解

这是一道~~比较简单~~的博弈论。 我们假设 $x \ge y$,那么此时可以分两种情况讨论: - $x using namespace std; #define int long long inline int read(){ int f=1,w=0; char c=getchar(); whil ......
题解 Euclid Game 39

结营信心赛div1C题题解

简要题意: 对于一张$n$条边的无向完全图,每条边有两个权值$a_i,b_i$,求一棵最小生成树使其$\frac{\sum{a_i}}{\sum{b_i}}$最小。 这道题如果没见过这种技巧可能不好想,但我们也可以考虑一个朴素的想法,那就是猜! 我们猜这个答案是$ mid$,然后就可以推一下柿子。 ......
题解 信心 div1C div1 div

CF1778D题解

显然,我们可以先忽略两个串已经一样的部分,只考虑剩下不一样的部分,然后我们就可以将它抽象成一个链上游走问题。我们记 $g_i$ 为从第 $i-1$ 个到第 $i$ 个点的期望步数,此时 $g_1=1$。且 $g$ 满足: $$g_i=\frac{n}{n-i}+\frac{i \cdot g_{i- ......
题解 1778D 1778 CF

CF1157B Long Number

题目传送门——[Long Number](https://www.luogu.com.cn/problem/CF1157B) ## 简单思路 由题意得我们要改变一个区间内的数,使得最后的结果最大,所以显而易见,根据数学规则,位数越高的数越大,最后的数越大,所以我们要尽可能早的开始更改数字,所以当我们 ......
Number 1157B 1157 Long CF

CF 1872 B

## [B. The Corridor or There and Back Again](https://codeforces.com/contest/1872/problem/B) 由题意可知,对于每一个***d~i~***和***s~i~***,必须要在进入房间***d~i~***的***s~i ......
1872 CF

CF 1872 A

## [A. Two Vessels](https://codeforces.com/contest/1872/problem/A) 简单题。先计算杯子a和杯子b里水的差值,在计算需要用c杯子舀几次水就行 $$Ans=ceil(|a-b|/2c)$$ #### 代码 ```cpp #include ......
1872 CF

CF1829H Don't Blame Me

[比赛链接](https://codeforces.com/problemset/problem/1829/H) # 题解 **知识点:线性dp,位运算。** 考虑设 $f_{i,j}$ 表示考虑了前 $i$ 个数字,与和为 $j$ 的方案数。转移方程显然。 注意初值为 $f_{0,63} = 1$ ......
1829H Blame 1829 Don CF

【题解】AtCoder Regular Contest 162

## A.Ekiden Race ### 题目描述: 有 $n$ 个人参加了往返赛跑,每个人有一个编号 $1$ 到 $n$。已知以下信息: - 如果按照往路的成绩排序,那么任何两个人的成绩都不相同。同时第 $i$ 个人在往路中排名第 $i$。 - 如果按照往返的成绩排序,那么任何两个人的成绩都不相同 ......
题解 AtCoder Regular Contest 162

CF1833F Ira and Flamenco

[比赛链接](https://codeforces.com/problemset/problem/1833/F) # 题解 **知识点:组合数学,枚举,双指针。** 注意到,长度为 $m$ 且数字各不相同的子序列,那么最大值与最小值的差至少为 $m-1$ 。因此,对于任意子序列,它是合法的,当且仅当 ......
Flamenco 1833F 1833 Ira and

CF1850H The Third Letter

[题目链接](https://codeforces.com/problemset/problem/1850/H) # 题解 **知识点:贪心,图论建模。** 考虑对约束 `a b d` 建边 $a \mathop{\to}\limits^d b$ 与 $b \mathop{\to}\limits^{ ......
Letter 1850H Third 1850 The

CF1872D Plus Minus Permutation

## 思路 又又又是一道 CF 诈骗题。 对于 $x$ 选出来的数,我们尽量放大的,对于 $y$ 选出来的数,我们尽量放小的,但是呢,存在同时被 $x$ 和 $y$ 选出来的数,就随便放。 但是可以发现按照题目给的数据范围,这么找选择的数,然后放最大或者是放最小,肯定是超时。 所以我们可以直接算出有 ......
Permutation 1872D Minus 1872 Plus

CF1872E Data Structures Fan

## 思路 一眼顶真,这不就是线段树吗?还挺板的,然后速打了一个线段树。 就是用两个变量分别存这个区间的两个异或值,修改就是交换这两个变量的值,询问都是询问整体的,应该很好写,就不细讲了。 ## AC code ```cpp #include using namespace std; struct ......
Structures 1872E 1872 Data Fan

CF1872F Selling a Menagerie

## 思路 对于每一个动物,我们都尽量让它比它害怕的动物先被卖。 考虑拓扑排序,每次输出出度为 $0$ 的点,然后再删点删边。 但是 $n$ 个点,$n$ 条边,必然存在环,所以只用拓扑排序是不行的。 自然想到 tarjan 缩点,对于环外,就拓扑排序好了,对于一个环,显然无法满足所有的点,所以我们 ......
Menagerie Selling 1872F 1872 CF