合集-Atcoder 题解

摘要:AT_abc388_f 题解 本题解主要侧重于证明(当然有些并不是很严谨),如果您想知道做法可以参考其它题解。 先将不合法段转成合法段。 设从前到后第 \(i\) 个合法段为 \([l_i,r_i]\)。根据题意以及合法段的定义,可以证明合法段互不相交。 考虑每一个合法段。我们先从下列命题入手。 命 阅读全文
posted @ 2025-01-13 23:11 邻补角-SSA 阅读(48) 评论(0) 推荐(0)
摘要:AT_abc256_f 题解 思路分析 推式子加数据结构题。 先来推 \(C_i\)。 \[\begin{aligned}C_i & = A_1+(A_1+A_2)+(A_1+A_2+A_3)+\ldots+(A_1+A_2+A_3+\ldots+A_i) \\ & =iA_1+(i-1)A_2+\ 阅读全文
posted @ 2023-10-04 15:04 邻补角-SSA 阅读(53) 评论(0) 推荐(0)
摘要:AT_abc313_c 题解 思路分析 简单推柿子的题。 我们要如何使得这个数列的最大值与最小值的差为 111 呢?显然是要尽可能的去让数列中的数平均分布。 显然,当两个数一个加 111,一个减 111 时,两数和不变。又因为每次都是这样的操作,因此操作完毕后数列总和不变。 设数列总和为 SSS,数 阅读全文
posted @ 2023-08-07 10:44 邻补角-SSA 阅读(31) 评论(0) 推荐(0)
摘要:AT_abc298_c 题解 思路分析 看到题解区里的各位大佬都直接上 set 和 multiset,我这里说一个用两组 set 和一组 map 的算法。 首先,题目要求记录哪些盒子装了某个数并要求升序去重输出。这个简单,用一组 set 记录每个数装在的盒子,然后每装一次,设把 xxx 装进 yyy 阅读全文
posted @ 2023-04-17 23:30 邻补角-SSA 阅读(53) 评论(0) 推荐(0)
摘要:AT_abc295_c 题解 思路分析 一道简单思维题。 首先,我们要求每次将满足 ai=aja_i=a_jai​=aj​ 的两个数划去的操作的最多操作次数。 我们从 ai=aja_i=a_jai​=aj​ 这个条件入手。可以发现,每两个相同的数都可以划去,也就是说,如果一个数有 nnn 个,那么最 阅读全文
posted @ 2023-03-27 19:54 邻补角-SSA 阅读(33) 评论(0) 推荐(0)
摘要:AT_abc293_d 题解 思路分析 一道并查集裸题。 为什么要使用并查集呢?因为题目要求连接两条绳子,同时还要判环,所以我们把绳子抽象成点,连接两条绳子抽象为用一条边连接两个点。于是就可以参考克鲁斯卡尔算法的思路,使用并查集来判环:如果两条绳子已经被连接在一条链(由绳子连接而成的连通分量)上的话 阅读全文
posted @ 2023-03-13 22:06 邻补角-SSA 阅读(50) 评论(0) 推荐(0)
摘要:AT_abc292_c 题解 思路分析 一道挺不错的思维题。 首先,题目要求求出满足 A×B+C×D=NA \times B+ C \times D = NA×B+C×D=N 的四元组 (A,B,C,D)(A,B,C,D)(A,B,C,D),且顺序不同,数相同的不算同一种。于是,我们可以先枚举 A× 阅读全文
posted @ 2023-03-06 22:43 邻补角-SSA 阅读(32) 评论(0) 推荐(0)
摘要:AT_abc291_c 题解 思路分析 一道挺不错的模拟题。 题目要求从 (0,0)(0,0)(0,0) 出发,根据指令走,问有没有走到过相同的点。于是这道题就被分为了两个小问题: “跟着指令走”如何模拟? 如何记录是否走到过相同的点? 首先是第一个问题。这个问题很简单,依次读入指令字符,每次操作后 阅读全文
posted @ 2023-02-28 22:51 邻补角-SSA 阅读(40) 评论(0) 推荐(0)
摘要:AT_abc290_c 题解 思路分析 一道挺不错的思维题。 首先我们要证明两个结论: 对于长度为 kkk 的数组 XXX,MEX(X)MEX(X)MEX(X) 不超过 kkk。 答案为 000 到 k−1k-1k−1 中最小的在数组中未出现的数。如果不存在,就为 kkk。 对于第一个结论,设 ME 阅读全文
posted @ 2023-02-22 22:47 邻补角-SSA 阅读(56) 评论(0) 推荐(0)
摘要:AT_abc289_c 题解 思路分析 一道基础的深搜模板题,建议参考:P1157 组合的输出。 首先,我们需要先进行选择。由于选择的集合之间没有顺序之分,所以采用组合选取的方式。 那么如何进行组合选取呢?我们每次只需要选择比前一个选择的集合的编号大的集合(严格大于)就可以了。这样子的定序枚举就可以 阅读全文
posted @ 2023-02-15 09:05 邻补角-SSA 阅读(49) 评论(0) 推荐(0)
摘要:AT_abc288_c 题解 题目比较板,说一下思路。 假设图中共有 xxx 个连通块,那么显然,我们应该将这 xxx 个连通块每个都删除到只剩一棵树(个人喜欢将其称之为连通链)。不妨第 iii 个连通块有 viv_ivi​ 个点,即 ei=vi−1e_i = v_i-1ei​=vi​−1 条边。共 阅读全文
posted @ 2023-02-08 12:40 邻补角-SSA 阅读(30) 评论(0) 推荐(0)
摘要:AT_abc280_b 题解 思路分析 一道前缀和原理题。 根据定义,Sn=a1+a2+…+anS_n = a_1+a_2+\ldots+a_nSn​=a1​+a2​+…+an​,Sn−1=a1+a2+…+an−1S_{n-1}=a_1+a_2+\ldots+a_{n-1}Sn−1​=a1​+a2​ 阅读全文
posted @ 2022-12-06 10:08 邻补角-SSA 阅读(14) 评论(0) 推荐(0)
摘要:AT_abc277_a 题解 思路分析 一道很基本的线性查找题。 从前往后遍历,找到数的时候输出下标即可。 关键代码 for(int i = 1;i <= n;i++) { if(a[i] == x) { cout << i << endl; break; } } 阅读全文
posted @ 2022-11-13 14:35 邻补角-SSA 阅读(24) 评论(0) 推荐(0)
摘要:AT_abc276_c 题解 思路分析 这道题可以用 STL,有大佬已经讲过了,我就来讲一个不用 STL 的做法。这个做法其实也是 STL 内部的实际做法。 这个做法分三步: 从右往左找到第一个不满足递减的数(即比它后面的数大)。因为如果是字典序最小的排列,从左往右一定递减。而题目保证不会输入字典序 阅读全文
posted @ 2022-11-13 11:59 邻补角-SSA 阅读(39) 评论(0) 推荐(0)
摘要:AT_joi2012yo_a 题解 思路分析 非常简单的最小值问题。 前三个为三种意大利面的价格,后两个为两种果汁的价格。根据题意,将前三者的最小值与后两者的最小值相加后减 50 即可。 代码 #include <iostream> using namespace std; int main() { 阅读全文
posted @ 2022-10-21 19:21 邻补角-SSA 阅读(23) 评论(0) 推荐(0)
摘要:AT_yahoo_procon2017_qual_a 题解 思路分析 题目要求我们判断输入的是否为字符串 yahoo的全排列。 若一个字符串为字符串 yahoo的全排列,则它所含有的全部字母一定为字符串 yahoo所含有的全部字母。即要求判断下列条件是否都成立。 y 的个数为一个。 a 的个数为一个 阅读全文
posted @ 2022-10-21 17:19 邻补角-SSA 阅读(30) 评论(0) 推荐(0)
摘要:ABC396F 题解 题目链接。 定义 定义 \(k=p\) 时: \([x+1,n]\) 中 \(b\) 等于 \(m-1\) 的数的个数为 \(f(p,x)\)。 \([1,x-1]\) 中 \(b\) 等于 \(m-1\) 的数的个数为 \(g(p,x)\)。 \(b_x\) 的值为 \(b^ 阅读全文
posted @ 2025-03-13 21:35 邻补角-SSA 阅读(98) 评论(0) 推荐(0)