题解complete compress atcoder

PA 2022 部分题解

[PA 2022] Wielki Zderzacz Termionów 有 $n$ 个球,每个球有 A、B 或 C 三种颜色。开始时你将每个 C 涂成 A 或 B。之后的每次操作,你可以选择相邻的两个 A 合并为一个 B,或选择相邻的两个 B 合并为一个 A。求将 C 涂色的方案数,满足你能够通过若 ......
题解 部分 2022 PA

AtCoder Regular Contest 128 E K Different Values

洛谷传送门 AtCoder 传送门 考虑判断有无解。把序列分成 $c = \left\lceil\frac{len}{k}\right\rceil$ 段,则 $\forall a_i \le c$ 且 $\sum\limits_{i=1}^n [a_i = c] \le ((len - 1) \bm ......
Different AtCoder Regular Contest Values

题解 ARC139D【Priority Queue 2】

problem 给定 $n,m,k,x$,给定了一个有 $n$ 个元素的可重集合 $a_i\in [1,m]$,会进行 $k$ 次如下操作:选择一个数 $y\in[1,m]$ 加到 $a$ 中,并把 $a$ 中第 $x$ 小的元素删除。 有 $m^k$ 种情况,对于每种情况的价值定义为最后 $a$ ......
题解 Priority Queue 139D ARC

AtCoder Regular Contest 134 D Concatenate Subsequences

洛谷传送门 AtCoder 传送门 我一年前甚至不会做/qd 发现 $a_{x_1}$ 为 $k = \min\limits_{i=1}^n a_i$ 时最优。然后开始分类讨论: 如果 $\min\limits_{a_i = k} a_{i+n} \le k$,答案为 $(k, \min\limit ......

AtCoder Regular Contest 133 D Range XOR

洛谷传送门 AtCoder 传送门 很典但是并不会做…… 设 $s_i = \oplus_{i=0}^n i$,所求即为: $$\sum\limits_{l=L-1}^R \sum\limits_{r=l+1}^R [s_l \oplus s_r = V]$$ 考虑把它化成下界相同的形式,即求: $ ......
AtCoder Regular Contest Range 133

关于容斥原理 / P5505题解

发现很多题解连容斥原理的“钦定”和“至少”的区别都讲不清楚,误导萌新,所以写一下这两个东西的区别 “钦定”这个东西是会算重的,而“至少”不会。 举个例子吧,比如 $1\ 2\ 3$ 三个位置不合法,如果我说“钦定”两个位置不合法,那么这里计算方案的时候这个不合法的方案会被计算三次,分别是钦定 $1\ ......
题解 原理 P5505 5505

AtCoder Beginner Contest 300

A - N-choice question #include<bits/stdc++.h> using namespace std; int read() { int x = 0, f = 1, ch = getchar(); while ((ch < '0' || ch > '9') && ch ......
Beginner AtCoder Contest 300

[JOI 2016 Final]断层 题解

题目链接 首先发现斜着平移比较难处理,所以考虑将平面逆时针旋转 $45°$。 接着发现风化也不好处理,但是风化的一定不会作为答案,所以我们可以离线,然后倒着处理操作,上升变为下降。 我们发现每个初始 $0$ 点最后的坐标就是它正着做时初始的坐标,且每次操作都只会将连续一段点的 $x,y$ 坐标修改。 ......
题解 断层 Final 2016 JOI

【23.05.03】好题题解

好题题解 A 题目大意: 计算一个项数为 $n$ 的多项式除以 $x^3-x$ 的余数多项式。 数据范围: 对于 $100%$ 的数据: $2 \leq n \leq 2 \times 10 ^ 5$ 解题分析: 水题,直接多项式除法模拟即可。 需要注意细节。 AC Code: # include ......
题解 23 05 03

AtCoder Regular Contest 128 D Neq Neq

洛谷传送门 AtCoder 传送门 考虑把所有 $a_i = a_{i+1}$ 的位置断开,分别计算然后把方案数乘起来。接下来的讨论假设 $a_i \ne a_{i+1}$。 考虑一个 dp,设 $f_i$ 为 $[1,i]$ 最后剩下的集合的方案数。转移需要从之前所有可以被删的区间转移过来。 现在 ......
Neq AtCoder Regular Contest 128

AtCoder Beginner Contest 242(D,E)

AtCoder Beginner Contest 242(D,E) D(二叉树搜索) D 题目大意就是首先给你一个字符串,代表$S^0$,然后我们可以操作得到$S^1,S^2$等等 我们可以知道$S^i$是拿$S^(i-1)$经过一系列替换而来的,因为这个字符串只有三种字符串,$A,B,C$,这个替 ......
Beginner AtCoder Contest 242

【题解】ABC300 F,G

F.More Holidays 题目分析: 考虑刻画一下我们选择是什么样子的。 考虑我们最后选择的 $T$ 中的一段一定是形如:一个完整的 S 选择一个后缀 $+$ 若干个完整的 S $+$ 一个完整的 S 的前缀。 这样的话就启示我们直接枚举这个前后缀选择的是什么,然后就可以很快算出来了,但是枚举 ......
题解 ABC 300

[POI2005]SAM-Toy Cars 题解(贪心+堆)

题面 首先考虑一个贪心策略:当地板已经放满需要取出一个时,取下一次使用时间 $nxt$ 最晚的那个。 所以我们只需要一个可以快速求出一个集合中 $nxt$ 最小的点并删除,插入新点的数据结构,这里很容易想到堆。 代码很简洁,注意数组的下标是位置还是颜色(考场 100 pts 到 0 pts)。 co ......
题解 SAM-Toy 2005 Cars POI

AtCoder Regular Contest 125 F Tree Degree Subset Sum

洛谷传送门 AtCoder 传送门 首先将度数 $-1$。 设 $f_i$ 为体积为 $i$ 至多能用几个物品凑出来,$g_i$ 为至少。 我们现在要证明一个东西:$x \in [g_i, f_i]$,$(i, x)$ 合法。 首先若 $(s, x)$ 合法,那么必须满足 $s - x \in [- ......
AtCoder Regular Contest Degree Subset

Cashier 题解

题目传送门 一道贪心题。 我们可以记录每一位客人离开的时间,当下一位客人来临时,他们之间空闲的时间就是我们休息的时间。 for (int i = 1; i <= n; i++) { int t, l; cin >> t >> l; ans += (t - endt) / a; endt = t + ......
题解 Cashier

Valhalla Siege 题解

题目传送门 一道二分题。 先观察数据范围,$1\le n,q\le 200,000$,显然需要 $O(n\log n)$ 的复杂度。且 $1\le k_i\le 10^{14}$,需要开 long long。 我们需要二分到第一个血量大于伤害值的武士的位置,前面的武士都死了。而在 C++ 算法库中, ......
题解 Valhalla Siege

[ABC213D] Takahashi Tour 题解

题目传送门 一道 dfs 序题。 题目中高桥每次只会去最小的那个点,所以要先对整张图进行排序。 for (int i = 1; i <= n; i++) sort(g[i].begin(), g[i].end()); 然后考虑 dfs。高桥不会走重复的点,所以我们可以开一个 vis 数组进行标记。然 ......
题解 Takahashi 213D Tour ABC

[蓝桥杯 2017 国 C] 合根植物 题解

题目传送门 一道并查集模板题。 没什么好说的,先给个并查集模板,神犇可以直接跳过。 查找根: int find_root(int n) { if (fa[n] == n) return n; return fa[n] = find_root(fa[n]); } 合并: void merge(int ......
蓝桥 题解 2017

Codeforces Round 869 (Div. 2) A-D题解

比赛地址 A. Politics 题意:有n个人对m个决案进行投票,对于每一个决案如果票数相同则所有人都离场,反之票数少的一方离场,现在提前知道了每个人的意见,让一些人参与投票,在保证第一个人不离场的情况下最终剩余人数最多是多少 Solution 把和第一个意见不同的给去掉就行了 void solv ......
题解 Codeforces Round 869 A-D

AT_abc106_d [ABC106D] AtCoder Express 2 题解

题目传送门 解题思路 区间 $dp$。 划分阶段:以左右城市之间的列车数量为阶段。 状态表达:设 $f_{i,j}$ 为城市 $i$ 与城市 $j$ 之间的列车数量。 状态转移: 由图可知,城市 $l$ 与城市 $r$ 之间的列车数量,就是城市 $l$ 与城市 $r-1$ 之间的列车数量与城市 $l ......
题解 106 AtCoder Express AT_abc

CF1817C Similar Polynomials 题解

可能更好的阅读体验 题目传送门 Div.1 C 拉格朗日差值,赛时开香槟。 题目大意 给定 $d$ 次两个多项式 $A(x),B(x)$。求 $s$,使得 $B(x)\equiv A(x+s) \pmod {10^9+7}$ ,保证 $s$ 存在。 给出多项式的形式为给出 $x=0,1,\cdots ......
题解 Polynomials Similar 1817C 1817

P5824 十二重计数法 题解

P5824 十二重计数法 题解 $\text{I}$:小球不同,盒子不同 每个小球都有 $\large m$ 个盒子可选择,根据乘法原理相乘。因此答案为 $\large m^n$ 。 $\text{II}$:小球不同,盒子不同,每个盒子至多装一个小球 每个盒子不能装多个小球,所以第一个小球有 $\l ......
题解 P5824 5824

题解 CF1325E【Ehab's REAL Number Theory Problem】

problem 给一些数,每个的因数个数不超过 7,求最少选出多少个,使得乘积为完全平方。无解输出 −1。$n=10^5,V=10^6$。 solution 如果一个数有三个不同的质因子,那么它至少有 8 个约数;如果一个数有平方因子,我们可以除掉。 所以任何数都可以写成下面三种形式:($p,q$ ......
题解 Problem Number Theory 1325E

CF三月D题题解

cf1798d 题意:重排序列,使得其中连续子序列和的绝对值最大的最大值小于序列最大值减最小值,序列和为0 考虑这样一种构造方案: 正负数分类,0直接不管 然后记录当前和sum,当sum非负时,加上一个负数,当sum是负数时,加上一个正数即可 正确性证明: 显然前缀和都是合法的。考虑计算前缀和数组, ......
题解

# 4月CF练题题解

1811D 1814C 1819B 1821D 1770D 题意: Koxia 和 Mahiru 正在玩一个游戏。游戏使用 $a,b,c$ 三个长度为 $n$ 的数组,共进行 $n$ 轮。 每一轮中,Koxia 先在 $a_i,b_i,c_i$ 中选择一个数字,Mahiru 再从未选择的两个数字中选 ......
题解

「BZOJ2144」跳跳棋-题解

「BZOJ2144」跳跳棋 个人评价 挺好的一道题,难点在于想到树这个结构和建树 1 题面 跳跳棋是在一条数轴上进行的。棋子只能摆在整点上。每个点不能摆超过一个棋子。我们用跳跳棋来做一个简单的游戏:棋盘上有 3 颗棋子,分别在 a,b,c 这三个位置。我们要通过最少的跳动把他们的位置移动成 x,y, ......
跳棋 题解 BZOJ 2144

Educational Codeforces Round 147 (Rated for Div. 2) A~E 题解

A Link。 模拟,代码。 B Link。 模拟,代码。 C Link。 我们设 $c$ 为最后相同的字符。 性质:我们一定不会删除字符 $c$。 因此以 $c$ 为最后字符的操作次数就是不包含字符 $c$ 的极大段的最小操作次数的最大值。 对于一个长度为 $l(l\ge 1)$ 的段,它的最小操 ......
题解 Educational Codeforces Round Rated

P4198 楼房重建 题解

P4198 楼房重建 题解 线段树二分 思路 考虑在线段树内维护二信息: 区间斜率最大值 $mx$ 区间最大斜率上升序列长度 $len$ 答案即为根节点的 $len$。 考虑转移信息二: 蓝色部分代表左区间的上升序列,红色是右区间的,绿色折线就是当前区间的上升序列。 🤔稍微思考之后发现,左区间的上 ......
题解 楼房 P4198 4198

AtCoder Regular Contest 119 F AtCoder Express 3

洛谷传送门 AtCoder 传送门 很厉害的题! 考虑所有车站已确定,如何求 $0$ 到 $n+1$ 的最短路。设 $g_{i,0}$ 为只考虑 $0 \sim i$ 的点,到 $i$ 和它左边第一个 $\text{A}$ 的最短路,$g_{i,1}$ 同理。有转移: 若 $s_{i-1} = \t ......
AtCoder Regular Contest Express 119

P2051 [AHOI2009] 中国象棋 题解

DP。状态设计是点睛之笔。 首先显然有每行或每列只能有至多 $2$ 个棋子。 设状态 $f_{i,j,k}$ 为第 $i$ 行,有 $j$ 列只放了一个棋子,$k$ 列放了两个棋子。 之后直接转移即可。注意边界判断。 code: 点击查看代码 #include<bits/stdc++.h> #def ......
中国象棋 题解 象棋 P2051 2051