atcoder-abc medicine atcoder abc

[ABC322G] Two Kinds of Base

[ABC322G] Two Kinds of Base 感觉很难入手的样子。凭借感觉认为合法的 \((a, b)\) 很少,先把 \(k = 2\) 另外算,然后注意到 \(S_1 > 0\),则 \(f(S, a) - f(S, b) \ge a^2 - b^2 = 2(a-b)b + (a-b) ......
Kinds 322G Base ABC 322

【字符串】【哈希】ABC284F ABCBAC 题解

ABC284F 这题的正解是 \(Z\) 函数。 如果 \(str = T + T\) 的话,若可以找到连续的分别长为 \(n\) 的两段,且这两段可通过 \(1\) 次翻转变为相同的字符串,那么便一定有解,否则无解。 暴力判断是 \(\mathcal{O}(n)\) 的,时间复杂度直接上天。 可以 ......
题解 字符串 字符 ABCBAC 284F

【整除分块】【DP】ABC239Ex Dice Product 2 题解

ABC239H 简单题。 令 \(f_i\) 表示乘到 \(\ge i\) 的期望。 容易得到 \(f_i=\dfrac{\sum\limits_{j=1}^{n}f_{\lceil\frac{i}{j}\rceil}}{n}\)。 将 \(f_i\) 移到同一边,去掉系数,有 \(f_i=\dfr ......
题解 Product Dice ABC 239

AT_abc291_f

01bfs 跑完d1 ,d2 ( 单源最短路 枚举 中间点(去掉的点 #include <iostream> #include <algorithm> #include <vector> #include <queue> #include <map> using namespace std; con ......
AT_abc 291 abc AT

[题解]AT_abc234_g [ABC234G] Divide a Sequence

思路 定义 \(dp_i\) 表示将前 \(i\) 个分为若干段的价值总和。容易得到状态转移方程: \[dp_i = \sum_{j = 1}^{i - 1}{dp_j \times (\max_{k = j + 1}^{i}\{a_k\} - \min_{k = j + 1}^{i}\{a_k\} ......
题解 234 Sequence AT_abc Divide

[题解]AT_abc234_g [ABC234G] Divide a Sequence

思路 定义 \(dp_i\) 表示将前 \(i\) 个分为若干段的价值总和。容易得到状态转移方程: \[dp_i = \sum_{j = 1}^{i - 1}{dp_j \times (\max_{k = j + 1}^{i}\{a_k\} - \min_{k = j + 1}^{i}\{a_k\} ......
题解 234 Sequence AT_abc Divide

AtCoder Grand Contest 036 F Square Constraints

洛谷传送门 AtCoder 传送门 本质是 \(p_i \in [l_i, r_i]\) 的计数问题。 当 \(1 \le i \le n\) 时,\(l_i\) 才可能不等于 \(1\)。考虑容斥,设钦定 \(m\) 个不满足条件(上界为 \(l_i - 1\)),其余任意(上界为 \(r_i\) ......
Constraints AtCoder Contest Square Grand

ABC322

T1:First ABC 2 模拟 代码实现 #include <bits/stdc++.h> using namespace std; int main() { int n; string s; cin >> n >> s; auto i = s.find("ABC"); if (i == str ......
ABC 322

AtCoder Beginner Contest 288 Ex A Nameless Counting Problem

洛谷传送门 AtCoder 传送门 考虑到规定单调不降比较难搞。先设 \(g_t\) 为长度为 \(t\) 的满足条件的序列个数(可重且有顺序)。求这个可以设个 dp,\(f_{d, i}\) 表示考虑到从高到低第 \(d\) 位,当前 \(t\) 个数中有 \(i\) 个仍然顶上界,并且之前的位都 ......
Beginner Counting Nameless AtCoder Contest

AT_abc321_f 题解

# 思路 简单动态规划,$dp_i$ 指当前操作后取和为 $i$ 的球的方案数,每次输出 $dp_K$ 即可。 需要注意的是对于每次 `+ x` 操作,计算 $dp$ 数组时要倒着循环。 时间复杂度:$O(QK)$。 # 代码 ```cpp#include<bits/stdc++.h>using n ......
题解 AT_abc 321 abc AT

AT_abc279_g [ABC279G] At Most 2 Colors 题解

题解 \(dp[i]\) 表示长度为i的格子的合法涂色数,考虑第 \(i\) 个怎么放 第 \(i\) 个前面 \(k-1\) 个位置有2种颜色,则第 \(i\) 个位置只能放这两种颜色中的一种 用合法方案减只有一种的方法,即得两种颜色的方案数 而只有一种颜色的方案数,等于 \(f[i-k+1]\) ......
题解 279 AT_abc Colors 279G

Atcoder abl c

传送门 题目描述 有n个城市,m条双向路的图,问你最少添加几条路使得任意两个城市可以两两到达? 样例 样例输入 3 1 1 2 样例输出: 1 题目解析 这是个双向路的图,我们可以把它当成一个非连通图。在各个点之间有连线,要求我们算出如何能将整个图的各个部分连接起来。那么,我们只要算出这个非连通图由 ......
Atcoder abl

ABC263G Erasing Prime Pairs 题解

这是一个只用最大流的做法。 思路 首先发现一个性质,除了 2 以外的所有质数都是奇数,而奇数 = 奇数 + 偶数,所以大多数情况下只能一奇一偶配对,唯一的特例是 \(1+1=2\)。 考虑先处理大于 1 的所有数的配对,对于所有 \(a_i + a_j\) 为质数的 \((i,j)\) 连边,由于合 ......
题解 Erasing Prime Pairs 263G

ABC231G Balls in Boxes 题解

考虑 DP,设 \(f_{i,j}\) 表示在前 \(i\) 个盒子放 \(j\) 次球的所有方案得分之和,得到转移式: \[f_{i,j}=\sum\limits_{k=0}^{j}{j \choose k}f_{i-1,k}(a_i+j-k)\\ \]发现这个转移式简直是为 EGF 量身定制,于 ......
题解 Balls Boxes 231G ABC

AtCoder——第一题

AtCoder Beginner Contest 322 F Vacation Query 题目大意 处理01字符串,给定Q次询问,询问区间内最长连续1的字符个数 题目理解 使用线段树维护区间 需要使用懒标记下传修改信号 线段树要维护7个信息(区间的最长连续1的个数、区间左端点开始连续1的个数、区间 ......
AtCoder

[题解]AT_abc240_f [ABC240F] Sum Sum Max

思路 题目要求的是 \(\max_{a = 1}^{n}\{\sum_{i = 1}^{a}\sum_{j = 1}^{a}{A_j}\}\),所以我们将 \(\sum_{i = 1}^{a}\sum_{j = 1}^{a}{A_j}\) 化简一下,得: \[i \times A_1 + (i - ......
题解 240 Sum AT_abc 240F

[题解]AT_abc245_f [ABC245F] Endless Walk

思路 首先我们可以发现,在任意一个节点数量大于 \(1\) 的强连通分量中的点都满足条件。 所以,我们可以对这张图跑一边 TarJan。 但是这样是错的,因为我们还需要考虑节点数量为 \(1\) 的强连通分量。 如果这种连通分量能够到达任意一个节点数量大于 \(1\) 的强连通分量,那么,这个连通分 ......
题解 245 Endless AT_abc 245F

AtCoder Grand Contest 056 D Subset Sum Game

洛谷传送门 AtCoder 传送门 考虑若 \(n\) 是奇数怎么做。枚举 Alice 第一次选的数 \(a_i\),然后考虑把剩下的数两两结成一个匹配,若 Bob 选了其中一个,Alice 就选另一个。容易发现排序后奇数位和它右边的偶数位匹配最优。那么设奇数位的和为 \(A\),偶数位的和为 \( ......
AtCoder Contest Subset Grand Game

AtCoder Beginner Contest 178 E

AtCoder Beginner Contest 178 E E - Dist Max 曼哈顿距离最大点对 \(ans = max(|x_i-x_j|+|y_i-y_j|)\) 考虑去绝对值,4种情况。sort一下取max即可。 #include <bits/stdc++.h> using name ......
Beginner AtCoder Contest 178

ABC322G题解

这场的G怎么这么毒瘤啊/kk 听说正解是DP?我爆搜头一个表示不服! statement 找出三元组 \((S, a, b)\) 的数量,使得 \(S\) 在 \(a\) 进制下和在 \(b\) 进制下的差为 \(X\) ,其中 \(0 \leq S_i <(min(a, b, 10))\) 。 首 ......
题解 322G ABC 322

AtCoder Beginner Contest 322

A - First ABC 2 解题思路 签到 Code #include <bits/stdc++.h> using namespace std; typedef long long LL; void solve() { int n; cin >> n; string s; cin >> s; i ......
Beginner AtCoder Contest 322

AT_abc254_h [ABC254Ex] Multiply or Divide by 2 题解

打篇题解巩固一下。 题意 给你两个集合 \(A\) 和 \(B\),对于任意 \(A\) 集合中的元素,我们可以进行 \(2\) 种操作:\(a_i\gets \left\lfloor\frac{a_i}{2}\right\rfloor\) 或 \(a_i\gets 2\times a_i\)。问最 ......
题解 254 Multiply AT_abc Divide

[AtCoder] E - Packing Under Range Regulations

Key idea: For a given box and a list of balls that can be placed in this box, we should choose the ball with the smallest R. Proof: say we have box B ......
Regulations AtCoder Packing Under Range

AtCoder Beginner Contest 322

A - First ABC 2 (abc322 A) 题目大意 给定一个字符串,找到最先出现ABC的位置。 解题思路 直接查找判断即可。 神奇的代码 #include <bits/stdc++.h> using namespace std; using LL = long long; int mai ......
Beginner AtCoder Contest 322

《AT_abc322_g Two Kinds of Base》解题报告

好题,考场上想到做法了,没写出来,被薄纱了,记录一下。 主要是做的比较顺一下就想到了。 我们先转换一下 \(f\) 函数 \(f(S,a,b)=\sum\limits_{i=1}^k S_i\times (a^{k-i}-b^{k-i})\) 我们可以发现对于位数 \(>2\) 的,一定满足 \(a ......
报告 AT_abc Kinds Base 322

洛谷题解 | AT_abc321_c Primes on Interval

目录题目翻译题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1样例 #2样例输入 #2样例输出 #2样例 #3样例输入 #3样例输出 #3题目简化题目思路AC代码 题目翻译 【题目描述】 你决定用素数定理来做一个调查. 众所周知, 素数又被称为质数,其含义就是除了数字一和本身之外不能被其 ......
题解 Interval AT_abc Primes 321

The solution of ABC144F

都不知道什么时候做的题了 problem & blog 一开始很容易想到枚举断边然后 DP 算代价。 于是很容易想到 DP 状态定义:设 \(dp_u\) 为从 \(u\) 出发到 \(n\) 的期望步数。 那么显然有 \(dp_u = \sum^{v_n}_{v_1} \dfrac{dp_{v_{ ......
solution 144F The ABC 144

[ABC286F]

# [[ABC286F] Guess The Number 2](https://www.luogu.com.cn/problem/AT_abc286_f) 题意转换: 有一个数 $n$,你不知道是多少。让你构造一个 $m$ 个点($1\le m\le 110$),且每条边有且仅有一条出边的图。告诉 ......
286F ABC 286

ABC211D Number of Shortest paths

分析 一道显然的最短路,用 dijkstra 算法。 计算最短路的同时,保存最短路个数,如果与当前最短路相同,最短路个数相加,否则到这个节点的最短路个数为上一个节点的最短路个数。 Accepted Code #include <bits/stdc++.h> using namespace std; ......
Shortest Number paths 211D ABC

abc260F - Find 4-cycle

F - Find 4-cycle 显然就是在一个集合中枚举两个点,然后看在另一个集合中是否存在两个点与这个集合中的两个点都相连。 假设x是v1中的一个点,设它的两条出边是(x,a),(x,b),那么记录下f[a][b]=x,根据鸽巢原理,这样做是n^2的 #include<cstdio> #incl ......
cycle 260F Find abc 260