043d abc

ABC323

Link A 很简单 B sort+struct+cmp函数 C 排个序举行 D 显然的,我们可以从最小的开始进行合并,合并的越多越好。但是可以注意到\(S_i\)的跨度相当的大,这怎么办呢? 我们可以使用STl中的map来解决,每一次取出map.begin()出来并且将其删除来解决。 E 一个很简 ......
ABC 323

【题解】AtCoder-ABC323

AtCoder-ABC323A Weak Beats 依题意判断。 提交记录:Submission - AtCoder AtCoder-ABC323B Round-Robin Tournament 依题意排序。 提交记录:Submission - AtCoder AtCoder-ABC323C Wo ......
题解 AtCoder-ABC AtCoder ABC 323

ABC323

T1:Weak Beats 模拟 代码实现 s = input() for i in range(1, len(s), 2): if s[i] == '1': exit(print('No')) print('Yes') T2:Round-Robin Tournament 模拟 代码实现 #incl ......
ABC 323

【倍增】ABC212F Greedy Takahashi 题解

ABC212F 暴力就是直接跳,显然不可过。 考虑对暴力进行优化,发现整个图是不会改变的,容易想到使用倍增。 显然是对边进行倍增的,令 \(f_{i, j}\) 表示从第 \(i\) 条边开始,跳了 \(2^j\) 条边后,到的是哪一条边,如果不存在,则设为 \(-1\)。 然后就是很显然的倍增了, ......
题解 Takahashi Greedy 212F ABC

【位运算】ABC281F Xor Minimization 题解

ABC281F 先将每一个 \(a_i\) 二进制拆分。 因为每一位的 \(\text{xor}\) 运算是互不影响的,于是可以考虑每一位。 从高位到低位考虑,因为 \(a_i < 2^{30}\),所以二进制状态下的 \(a_i\) 的长度是 \(\le 29\) 的。 假设在考虑 \(bit\) ......
题解 Minimization 281F ABC 281

[ABC322G] Two Kinds of Base

第一次赛后马上AK ABC,好激动,感觉是这场太水了,一看评分,G有2800?! 感觉这个 Trick 挺有用的:某些变量真正能取到的值其实远远没有给的范围那么大,除了某些特殊情况,而这些特殊情况可以用特殊的方式统计答案。 题意 对于一个非负整数序列 \(S=(S_1,S_2,\dots,S_k)\ ......
Kinds 322G Base ABC 322

[ABC257F] Teleporter Setting 题解

1.题目 洛谷传送门 2.思路 我们可以把不确定的点当成真实存在的 \(0\) 号点,建边的时候就正常连即可。 然后我们来看一个样例: 1 - 2 - 0 3 - 4 - 5 当我们把 \(0\) 号点看成 \(3\) 号点时,答案就是 \(1\) 号点到 \(0\) 号点的距离加上 \(3\) 号 ......
题解 Teleporter Setting 257F ABC

【思维】【DP】ABC298Ex Sum of Min of Length 题解

ABC298Ex 简单题。 因为有 \(\min\) 不好做,容易想到讨论 \(d(i, L)\) 和 \(d(i, R)\) 的大小。 令 \(p = \text{LCA}(L, R)\),\(dep_L > dep_R, dist = dep_L + dep_R - 2\times dep_p\ ......
题解 思维 Length of ABC

【DP】ABC273F Hammer 2 题解

ABC273F 一道比较板的区间 \(\text{dp}\)。 先对坐标离散化,令离散化数组为 \(v\)。 令 \(f_{i,j}\) 表示能走到区间 \([v_i,v_j]\) 的最短路程,显然 \(f\) 数组初始为 \(inf\)。 但发现这样无法转移,可以再增加一维 \(k \in \{0 ......
题解 Hammer 273F ABC 273

[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

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

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

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

[题解]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

ABC322G题解

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

《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