atcoder abc 309

AtCoder Regular Contest 120 F Wine Thief

洛谷传送门 AtCoder 传送门 Hint 如果是一个环怎么做? Answer 由于是一个环,因此环上每个点对最终答案造成的贡献都相同。设 $f_{i,j}$ 为长度为 $i$ 的序列选 $j$ 个不相邻的点的方案数,则 $f_{i,j} = \binom{i-j+1}{j}$。应该很好理解,考虑 ......
AtCoder Regular Contest Thief Wine

[ABC132D] Blue and Red Balls

2023-01-16 题目传送门 翻译 难度&重要性(1~10):3 题目来源 AtCoder 题目算法 dp 解题思路 因为蓝球的数量是固定的,题目让我们求,在取 $i$ 次的情况下,有几种方案,首先我们肯定要枚举 $i$,范围就是 $\sum_{i=1}^{k}$ 了,然后因为他每次只能取连续的 ......
Balls 132D Blue ABC 132

[ABC129E] Sum Equals Xor

2023-01-15 题目传送门 翻译 难度&重要性(1~10):4 题目来源 AtCoder 题目算法 dp/模拟 解题思路 我们都知道,异或是一种不进位的加法,而要想 $ a + b = a \oplus b $ 就不能进位,也就是说每一位不能是 $ ( 1,1 ) $ 就有 $ ( 0,1 ) ......
Equals 129E ABC 129 Sum

[ABC128F] Frog Jump

2023-01-14 题目传送门 翻译 难度&重要性(1~10):5 题目来源 AtCoder 题目算法 数学,模拟 解题思路 把(A-B)看为一步。应为最后必须落在N-1,所以可以将其分为两个序列: $(A+B),2\times(A+B),3\times(A+B),\cdots N-1-2\tim ......
128F Frog Jump ABC 128

[ABC128E] Roadwork

2023-01-14 题目传送门 翻译 难度&重要性(1~10): 题目来源 AtCoder 题目算法 区间覆盖,线段树,双堆 解题思路 可以将问题转化为区间覆盖问题和单点查询问题。 一共会有 $3$ 种操作: $1.$ 插入一个区间。 $2.$ 删除一个区间。 $3.$ 查询一个区间。 想到这我是 ......
Roadwork 128E ABC 128

[ABC128D] equeue

2023-01-14 题目传送门 翻译 难度&重要性(1~10): 题目来源 AtCoder 题目算法 暴力,贪心 解题思路 由题意可以得出,数据只有 $n \leq 50,k \leq 100$。所以,可以使用暴力,枚举从左右两边取的个数(只能从两边取),用一个数组记录下负数,去玩两边之后,将负数 ......
equeue 128D ABC 128

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