atcoder-arc atcoder sentou arc
AtCoder Beginner Contest 322
A - First ABC 2 #include <bits/stdc++.h> using namespace std; #define int long long #define mp make_pair using vi = vector<int>; using pii = pair<int, ......
AtCoder 329. E - Stamp (搜索 + 思维
import java.util.Scanner; class Main { static int n, m; static String s, t; static StringBuilder ox; /** * 思路 : * 思路的大门 : 题目要要求把x变成s, 我们可以反过来, 把s变成只有# ......
AtCoder 330. E Mex and Update (关于Mex的总结 + TreeSet和优先队列的性能问题
package AtCoder.begin330; import java.util.*; class Main5 { /** * 总结 : mex的取值范围跟数据长度有关, 而跟元素取值范围无关 * * 思路 : 首先我们只需要用TreeSet维护0 -> N就好了, 我们答案一定在0 -> N中 ......
TOYOTA SYSTEMS Programming Contest 2023(AtCoder Beginner Contest 330)
TOYOTA SYSTEMS Programming Contest 2023(AtCoder Beginner Contest 330) A - Counting Passes int main() { IOS; cin >> n >> m; int ans = 0; rep (i, 1, n) ......
[ARC105E] Keep Graph Disconnected
题目链接 好题。 如果 \(1\) 和 \(n\) 一直联通,开始即结束。 如果 \(n\mod 4=1\),那么 \(\frac 12x(x+1)+\frac12(n-x)(n-x+1)\) 为偶数。 如果 \(n\mod 4=3\),那么 \(\frac 12x(x+1)+\frac12(n-x ......
[ARC168E] Subsegments with Large Sums
题目链接 看到严格选 \(k\) 个,不难想到 WQS二分。定义 \(f(x)\) 为分成 \(x\) 段,最多有多少个超过 \(S\) 的。然后你会发现他不是凸的。因为他有很多平段,比如把两个很小的合并不改变答案。 换个方向? 考虑定义 \(f(x)\) 为有 \(x\) 个超过 \(S\) 的段 ......
AtCoder Beginner Contest 327 D
AtCoder Beginner Contest 327D D - Good Tuple Problem (atcoder.jp)(种类并查集,二分图染色) 算法学习笔记(7):种类并查集 附上典题:P1892 [BOI2003] 团伙 种类并查集做法 #include <bits/stdc++.h ......
ARC66 D Interval Counts 题解
Link ARC66 D Interval Counts Question 给定正整数 \(n\) 和长度为 \(n\) 的序列 \(x_i,y_i\) 保证 \(x_i\) 单调递增,你需要构造 \(m\) 个去年 \([L_i,R_i]\) ,\(m\) 有你指定,使得每个 \(x_i\)恰好被 ......
ARC166 C LU/RD Marking
Link ARC166 C LU RD Marking Question 给一个 \(n\) 行 \(m\) 列的网格,它的所有网格线上共有 \(n(m+1)\) 条竖边,有 \((n+1)m\) 条横边 有如下两中操作 选一个上面和左边的网格线没有被涂黑的格子,并涂黑着两条线 选一个下面和右边的网 ......
ARC166 A Replace C or Swap AB 题解
Link ARC166 A Replace C or Swap AB Qustion 给出两个长度相同的由 \(A,B,C\) 组成的字符串 \(X\) 和 \(Y\) 。 需要使用一些操作使得 \(X\) 和 \(Y\) 一样 将 \(X\) 中的 \(C\) 换成 \(A\) 将 \(X\) 中 ......
AtCoder Beginner Contest 330
A - Counting Passes (abc330 A) 题目大意 给定\(n\)个学生的分数,以及及格分 \(x\),问多少人及格了。 解题思路 依次判断即可。 神奇的代码 #include <bits/stdc++.h> using namespace std; using LL = lon ......
[ARC168E] Subsegments with Large Sums
有点意思的简单题。 答案有可二分性。合并两段,显然仍然合法。 考虑如何 check。因为答案可以被二分,我们尝试求恰好 \(x\) 段就行了。 恰好,这是 wqs 二分的内容。如何设计一个与 \(x\) 有关的凸函数呢? 这个函数大概是 \(\sum_{i=1}^x w(l_i, r_i)\) 的形 ......
[ARC117E] Zero-Sum Ranges 2题解
题解 前言 个人认为官方题解写得最为详细、干净、清楚,如果有意向阅读外文版的题解的话,还是推荐去读一读: Editorial - AtCoder Regular Contest 117 本文属于转载(?),有一些自己的思考过程,希望有帮助。 题意 有多少个长度为 \(2N\) 的序列 \(A\) 满 ......
AtCoder Beginner Contest 329 F
AtCoder Beginner Contest 329 F F - Colored Ball (atcoder.jp)(启发式合并) 问题陈述 有 \(N\) 个编号为 \(1, 2, \ldots, N\) 的盒子。最初,盒子 \(i\) 中有一个颜色为 \(C_i\) 的小球。 给你\(Q\) ......
ARC168F
纪念一下第一次补完 ARC 的所有题。 本题解介绍 \(2 log\) 做法,需要卡常才能过。 感谢 @Rainbow_qwq 大佬的耐心讲解,拜谢拜谢拜谢。 首先注意到每次操作是前后缀修改,自然想到维护差分数组。 假设当前操作到了 \(a_i\),那么差分数组的 \(a_i\) 这位加 \(2\) ......
ARC168(A-C)题解
比赛链接:arc168 A 题意: 读入一个由<和>构成的字符串,在最开始,最后,字符之间可以填上任意数字,任意两个相邻数字之间必须满足字符代表的大小关系。求问最后填入的数字组成的数组最少有多少对逆序对。 题解: 签到。 <可以不去考虑,因为不会对答案造成影响。 >如果不是在连续段内,也可以不去考虑 ......
AtCoder Regular Contest 144 E GCD of Path Weights
洛谷传送门 AtCoder 传送门 喵喵题。 考虑若所有点权都已确定,如何求 \(1\) 到 \(n\) 所有路径权值和的 \(\gcd\)。 考虑如何 check 一个 \(x\) 是否合法。\(x\) 合法的充要条件是,把不能从 \(1\) 到达的点和不能到达 \(n\) 的点扔掉后,存在一组 ......
[AtCoder Toyota2023 Spring Final] Git Gud
拜谢 Magic Duck 大神。其次我很喜欢洛谷逆天翻译把大翻译成小…… 首先考虑算一下贡献,考虑每个点的深度,一开始都是 1,进行合并以后相当于首先把两个端点的深度累计到答案里,然后再选择一边给它的联通块内每个点深度增加 1。那么容易发现我们可以算贡献转化为每个联通块权值为它向外的度数,每次合并 ......
ARC168F Up-Down Queries
考虑一次询问怎么做: 我们想求的答案就是 每次减时为 \(0\) 的位置个数之和(这些位置会与 \(0\) 取 \(\max\) 从而使答案变大) + \(\sum (m-2\times a_i)\)(所有操作的总和)。 考虑维护 \(y\) 的差分数组,分析一次操作 \([1,x]\) 减 \(1 ......
AtCoder Beginner Contest 329
劳累一天不该写题,启发式合并都写错了 A - Spread (abc329 A) 题目大意 给定一个字符串,将每个字符输出出来,中间留个空格。 解题思路 遍历输出即可。 神奇的代码 #include <bits/stdc++.h> using namespace std; using LL = lo ......
AtCoder Beginner Contest(abc) 326
B - 326-like Numbers 难度: ⭐ 题目大意 如果一个三位数的百位和十位的乘积等于个位, 那么这个数就是合法的; 问大于等于n的最小的合法的数是多少; 解题思路 因为数据范围很小, 所以可以直接暴力; 神秘代码 #include<bits/stdc++.h> #define int ......
【题解】Atcoder snuke21_e Tournament
传送门:https://atcoder.jp/contests/snuke21/tasks/snuke21_e?lang=en 题意: 求所有 $n$ $(n \leq 100000)$ 个点的竞赛图中强连通分量个数之和。 思路: 竞赛图的好性质:对竞赛图 $SCC$ 缩点之后,所有点有一个拓扑序, ......
AtCoder Beginner Contest 329
C - Count xxx 题意是:给你一个字符串,求出字符串里面相同字母的子串数量 思路:用map映射即可,取每个字母的最大长度,然后加起来 using namespace std; int main(){ int n; string s; cin>>n>>s; map<char,int>mp; ......
ARC144E GCD of Path Weights
Description 给定 \(n\) 个点,\(m\) 条边的有向图,图中的任意一条有向边满足 边起点的编号小于边终点的编号。每个点有点权,但其中有些点的点权未知。 你需要找到一种给未知点权值的方案,使得 所有 \(1\to n\) 的路径点权和的最大公因数最大,或者告知答案可以无限大。输出这个 ......
ARC168E
简要题意 给定一个长度为 $n$ 的序列 $a$,将 $a$ 划分为 $k$ 个连续段,最大化满足连续段中元素和 $\geq s$ 的连续段数。 题解 首先发现是恰好 $k$ 个连续段,这种类型的题套路地考虑 wqs 二分,然后你会惊喜的发现这玩意不是凸的,我的思考也就卡在这里了。 正确的做法是观察 ......
AtCoder Beginner Contest 329 (ABC329)
A. Spread 不说了,代码。 B. Next 不说了,代码。 C. Count xxx Description 给定一个长度为 \(N\) 的字符串 \(S\),求 \(S\) 中非空连续,并且包含重复字符的连续子串长度。 例如 $S = $ aaabaa,则它满足上述条件子串为 a,aa,a ......
AtCoder Beginner Contest(abc) 329
B - Next 难度: ⭐ 题目大意 给定n个数, 输出其去重后的次大值; 解题思路 暴力就行; 神秘代码 #include<bits/stdc++.h> #define int long long #define IOS ios::sync_with_stdio(false), cin.tie( ......
AtCoder Beginner Contest(abc) 296
B - Chessboard 难度: ⭐ 题目大意 给定一个8*8的字符矩阵, 其中只有一个' * ', 输出它的坐标; 其坐标的列用字母表示, 行用数字表示, 具体看样例解释; 解题思路 签到题不多嗦了; 神秘代码 #include<bits/stdc++.h> #define int long ......
AtCoder Beginner Contest 328
B - 11/11 题意是:有n个月份,要你计算出月份上的每个数位与对应月份中的每个日期数位一致的日期和 直接模拟即可 using namespace std; int a[200]; int p; bool check(int x){ p=x%10; x/=10; while(x){ int q= ......