atcoder_abc atcoder 327 abc

AtCoder Regular Contest 125 E Snack

洛谷传送门 AtCoder 传送门 很棒的 flow 题,考虑建二分图。 源点向每种零食连边权为 $a_i$ 的边,每种零食向每个孩子连边权为 $b_j$ 的边,每个孩子向汇点连边权为 $c_j$ 的边,这个图的最大流就是答案。 直接跑最大流肯定 T,考虑最大流等价于求这个图的最小割,因此转而求最小 ......
AtCoder Regular Contest Snack 125

AtCoder Regular Contest 126 D Pure Straight

洛谷传送门 AtCoder 传送门 很不错的状压。 考虑先把最后作为答案的数聚到一起,再算它们的逆序对个数。 设 $f_S$ 为当前选的数集合为 $S$ 的答案。有转移: 选 $a_i$,答案加上之前选的比它大的数; 不选 $a_i$,此时需要把左边的数或者右边的数往中间挪一个,答案加上左右两端的最 ......
Straight AtCoder Regular Contest Pure

AtCoder Beginner Contest 159

AtCoder Beginner Contest 159 https://atcoder.jp/contests/abc159 EF 是打基础的好题 D - Banned K #include <bits/stdc++.h> #define ll long long using namespace ......
Beginner AtCoder Contest 159

ABC267G Increasing K Times 题解

做这道题,很有感悟,发篇文。 先给数列从小到大排个序。 接下来设 $f_{i,j}$ 表示前 $i$ 个数的排列形成 $j$ 个上坡的方案数。 接下来考虑转移,分为插入第 $i$ 个数后增加上坡和不增加上坡两种情况。 对于不增加的情况,有三种可能: 第 $i$ 个数插入在了数列的最前端,有 $1$ ......
题解 Increasing Times 267G ABC

[ABC284F] ABCBAC

2023-01-09 题目传送门 翻译 难度&重要性(1~10):2.5 题目来源 AtCoder 题目算法 Z函数,KMP,字符串Hash 解题思路 对于一个 $f_S$,我们可以将它化成三个部分。 也就是 $[0,i-1],[i,i+n-1],[i+n,2n]$。 我们可以不断枚举中断点 ii, ......
ABCBAC 284F ABC 284

ABC295G

题面 不难发现初始图 $G_S$ 就是一棵树,边的方向由父亲到儿子。那么在进行连边操作之前,每个节点能到达的编号最小的节点就是其子树中编号最小的节点。又因为题目里的连边操作都是从小编号连到大编号的,所以每个节点子树中编号最小的节点就是它本身。 观察连边操作的限制: $u\neq v$ 保证在连这条边 ......
295G ABC 295

ABC295G

题面 不难发现初始图 $G_S$ 就是一棵树,边的方向由父亲到儿子。那么在进行连边操作之前,每个节点能到达的编号最小的节点就是其子树中编号最小的节点。又因为题目里的连边操作都是从小编号连到大编号的,所以每个节点子树中编号最小的节点就是它本身。 观察连边操作的限制: $u\neq v$ 保证在连这条边 ......
295G ABC 295

[ABC212E] Safety Journey

2023-01-08 题目传送门 翻译 难度&重要性(1~10):2 题目来源 AtCoder 题目算法 dp 解题思路 首先就想到暴力 dp,用三个循环枚举:$1.$ 时间,$2.$ 目前在的城市,$3.$ 明天去的城市。 时间复杂度为 $O(n^2k)$,由于 $1 \le n,m,k \le ......
Journey Safety 212E ABC 212

[ABC212D] Querying Multiset

2023-01-08 题目传送门 翻译 难度&重要性(1~10):1 题目来源 AtCoder 题目算法 模拟,优先队列 解题思路 用优先队列存储下加入的元素编号,对操作 $2$ 把所有的 $k$ 存在一起。 完成状态 已完成 易错点 注意,操作 $2$ 只对已加入的编号 $+k$。所以在新加入编号 ......
Querying Multiset 212D ABC 212

AtCoder Beginner Contest 158

AtCoder Beginner Contest 158 https://atcoder.jp/contests/abc158 基础不牢,地动山摇 D - String Formation 一个小小的STL应用 #include <bits/stdc++.h> #define ll long lon ......
Beginner AtCoder Contest 158

AtCoder Problem Difficulty

ABC299 之前 . ......
Difficulty AtCoder Problem

AtCoder ABC 299 ABCDEFG

A - Treasure Chest 题意 给定由 $\texttt{.}$、$\texttt{|}$、$\texttt{}$ 三种字符组成的长度为 $n$ 的字符串 $s$,保证 $\texttt{|}$ 的个数为 $2$,$\texttt{}$ 的个数为 $1$。 判断 $\texttt{*}$ ......
AtCoder ABCDEFG ABC 299

AtCoder Regular Contest 111 F Do you like query problems?

洛谷传送门 AtCoder 传送门 挺有意思的计数。 计数感觉很难做,不妨转成期望,期望又可以转成概率之和。 考虑枚举 $w \in [0,m-1]$,把 $> w$ 的数设为 $1$,$\le w$ 的数设为 $0$。那么期望就是所有 $w$,$a_i$ 为 $1$ 的概率之和。对于一个 $i$, ......
problems AtCoder Regular Contest query

Atcoder题解:Agc056_e

$$也想养老鼠捏$$ 先把当前要解决的点旋转到位置 $n$,问题不变。求 $n$ 次即可。 我们先来看两个没有结果的解法。 一就是一 我们先考虑暴力 $dp$,设 $dp_{i,mask}$ 表示当前已经安放了 $i$ 个奶酪,被喂饱的老鼠的集合为 $mask$ 的概率。容易发现 $i$ 其实就是 ......
题解 Atcoder Agc 056

【题解】[ABC299F] Square Subsequence(DP)

【题解】[ABC299F] Square Subsequence 题目链接 [ABC299F] Square Subsequence 题意概述 给定一个由小写英文字母组成的字符串 $S$。计算满足以下条件的非空字符串 $T$ 的数量,答案对 $998244353$ 取模。 将 $T$ 复制一倍形成 ......
题解 Subsequence Square 299F ABC

abc252_f Bread 题解

题目传送门 好眼熟啊…… 题意 有一个长度为 $l$ 的~~扩散性百万甜~~面包要分给 $n$ 个小朋友,第 $i$ 个小朋友想要一根长度为 $a_i$ 的面包,保证 $\sum\limits_{1\leqslant i \leqslant n} a_i \leqslant l$,注意是小于等于,即 ......
题解 Bread abc 252

abc299-G

题目链接:https://atcoder.jp/contests/abc299/tasks/abc299_g 知识:单调栈(思想),贪心 思路:枚举每一个点,维护一个栈。当这个点$x$之前有比它大的$y$(不唯一)并且y在后面还会出现,就把$y$删除,否则直接break,最后将$x$加入即可。 代码 ......
abc 299

Atcoder Beginner Contest 299 G

对于要打印的 $B$,我们首先尝试确定 $B_1$。 让 $f(x) (1≤x≤M)$ 是最大的 $i$,使 $A_i = x$。 对于 $r:=\underset{{{1≤x≤M}}}{\min}f(x)$,我们可以证明 $B_1$ 是 $A_1 ,A_2 ,...,A_r$ 中的一个(否则,$B ......
Beginner Atcoder Contest 299

AtCoder Beginner Contest 299

A - Treasure Chest (abc299 a) 题目大意 给定一个包含 |*.的字符串,其中|两个,*一个,问*是否在两个|之间。 解题思路 找到两个|的下标$l, r$以及 *的下标$mid$,看看是否满足 $l < mid < r$即可。 神奇的代码 ```cpp #include ......
Beginner AtCoder Contest 299

abc253_e Distance Sequence 题解

题目传送门 简单的动态规划题。 绝对详细! 题意 给定三个整数 $n$、$m$ 和 $k$,求有多少个序列满足以下条件: 对于 $1 \leqslant i \leqslant n$,$1 \leqslant a_i \leqslant m$。 对于 $1 < i \leqslant n$,$\le ......
题解 Distance Sequence abc 253

AtCoder Beginner Contest 283 Ex Popcount Sum

洛谷传送门 AtCoder 传送门 记录一下这个神奇的套路。 首先有 $\operatorname{popcount}(n) = n - \sum\limits_{i=1}^{\infty} \left\lfloor\frac{n}{2^i}\right\rfloor$。证一下: $$\operat ......
Beginner Popcount AtCoder Contest 283

AtCoder Regular Contest 115 D Odd Degree

洛谷传送门 AtCoder 传送门 若连通块是一棵树,考虑钦定 $k$ 个点为奇度点,方案数为 $\binom{n}{k}$。对于叶子,如果它是奇度点,那么连向它父亲的边要保留,否则不保留。这样自底向上考虑,任意一条边的保留情况都可以唯一确定,所以最后方案数就是 $\binom{n}{k}$。 若连 ......
AtCoder Regular Contest Degree 115

[ABC127E] Cell Distance

2023-01-08 题目传送门 翻译 难度&重要性(1~10):1 题目来源 AtCoder 题目算法 dp,逆元 解题思路 转化一下,分离行列,针对每一对去计算方案。 以下以行为例子。 考虑两个之间行距为 $i$,都可以随便选择一列,从 $n-i$ 个行距为 $i$ 的行组合中挑选一个,然后再选 ......
Distance 127E Cell ABC 127

[ABC126F] XOR Matching

2023-01-07 题目传送门 翻译 难度&重要性(1~10):1 题目来源 AtCoder 题目算法 位运算 解题思路 因为两个相同数异或为 $0$,所以中间放一个 $k$ 两边一直加一样的数,然后在序列首或尾在加一个 $k$,既构造完成。( $k=1$ 时要特判) 完成状态 已完成 ......
Matching 126F ABC 126 XOR

[ABC126E] 1 or 2

2023-01-07 题目传送门 翻译 难度&重要性(1~10):2 题目来源 AtCoder 题目算法 并查集 解题思路 因为每张卡片上的数字只能是 $1$ 或者 $2$,所以如果我们知道了 $A_{X_i}$ 或者 $A_{Y_i}$,我们就能根据 $Z_i$ 知道另外一个。用并查集就能轻松解决 ......
126E ABC 126 or

ABC298E 题解

前言 题目传送门! 更好的阅读体验? 题解区的代码都好丑啊,嘲讽。 思路 对于这种概率题,正常人都能反应到这是 dp。 所以:$dp_{t, i, j}$ 表示:当前是第 $t$ 回合,Tak 在 $i$ 位置,Aok 在 $j$ 位置,概率。 如果这样设状态的话,转移方程就会非常一眼(刷表): $ ......
题解 298E ABC 298

AtCoder Regular Contest 114 F Permutation Division

洛谷传送门 AtCoder 传送门 这题居然是之前某场模拟赛(contest 701)的 T1……(@Vidoliga 场切但是被卡常/bx) 下面记 $m$ 为原题面中的 $K$,$a_i$ 为原题面中的 $P_i$。 不难发现后手的策略是把所有段按照段的第一个数从大到小排序接在一起。 考虑若 $ ......
Permutation Division AtCoder Regular Contest

AtCoder Regular Contest 114 D Moving Pieces on Line

洛谷传送门 AtCoder 传送门 挺有意思的题。 首先显然地,一个棋子不会走回头路。于是一个棋子沿着边走的效果就是区间异或。 更进一步,设 $s_i$ 为 $i-1 \to i$ 的边颜色与 $i \to i+1$ 的边颜色是否相同(差分),相当于对于每个 $i$ 都选择 $s_{a_i}$ 和 ......
AtCoder Regular Contest Moving Pieces

【题解】[ABC248G] GCD cost on the tree

「八云紫」无数次痛苦地询问,为什么我们还活着? ……而「古明地恋」从不会回答。 恋恋闭上了觉之眼。 思路 容斥 + dp. $\gcd$ 相关,考虑 $\mu$ 反演或者 $\varphi$ 反演。 本质上都和容斥差不多,不如直接一步到位考虑容斥。 把权值拆成 $\gcd$ 和对应的方案数两部分,考 ......
题解 248G cost tree ABC

ABC298Ex 树上计数 + 倍增 题解

思考如何将到 $u$ 距离短的和到 $v$ 距离短的节点分别处理出来。发现对于一次询问 $(u,v)$,可以将所有节点分成三类: 除 $u$ 和 $v$ 的 LCA 的子树外的所有节点。 将 $u$ 至 $v$ 的最短路径的最中间的边删掉后组成的两棵树中的其中一棵树中的所有节点。 不属于以上两类节点 ......
题解 ABC 298 Ex