ABC

ABC327 E Maximize Rating 题解

Link ABC327 E Maximize Rating Question 给出 \(N\) 个数 \(Q_i\),从中按照顺序选出 \(k\) 个数,使得 \[R=\frac{\sum^k_{i=1}(0.9)^{k-i}\times Q_i}{\sum^k_{i=1}(0.9)^{k-i}}- ......
题解 Maximize Rating ABC 327

ABC325 D Printing Machine 题解

Link ABC325 D Printing Machine Question 有 \(N\) 个零件需要打印,每个零件从 \(T_i\) 时间进入机器,从 \(T_i+D_i\) 时间离开机器,每个时间段只能答应一个零件,求最多能打印多少零件 Solution 贪心的去想,对于第 \(i\) 个时 ......
题解 Printing Machine ABC 325

ABC330

D 记录每一行,每一列有多少个 o,然后统计答案即可。 #include<bits/stdc++.h> #define int long long using namespace std; int n; string str[2005]; int r[2005][2005],l[2005][2005 ......
ABC 330

AT_abc329_e [ABC329E] Stamp 题解

题目翻译 给你两个字符串:\(S\) 由大写英文字母组成,长度为 \(N\);\(T\) 也由大写英文字母组成,长度为 \(M\),小于 \(N\)。有一个长度为 \(N\) 的字符串 \(X\),它只由 # 字符组成。请判断是否有可能通过执行以下任意次数的操作使 \(X\) 与 \(S\) 匹配: ......
题解 329 AT_abc Stamp 329E

[ABC328C] Consecutive 题解

给一个长度为 \(n\) 的字符串 \(s\),\(q\) 次询问,每一次 \(l\) 和 \(r\) 区间内有多少个 \(s_i\) 等于 \(s_{i-1}\)。 \(10^5\) 的数据 \(O(N^2)\) 暴力肯定行不通。于是我们考虑预处理前缀和,处理到 \(i\) 下标以及之前有多少个 ......
题解 Consecutive 328C ABC 328

[ABC329C] Count xxx 题解

插曲 因为本人看错了题面,买看到一个子串只包含一种字母,所以切完 D 和 E 才回来发现很简单。 问题翻译 给你一个长度为 \(N\) 的字符串 \(S\),由小写英文字母组成。 求 \(S\) 的非空子串中有多少个是一个字符的重复。在这里,作为字符串的两个子串是相等的,即使它们是以不同的方式得到的 ......
题解 Count 329C ABC 329

[ABC329D] Election Quick Report 题解

题目翻译 有一场选举,要从 \(N\) 名候选人中选出一名获胜者,候选人编号为 \(1, 2, \ldots, N\),共有 \(M\) 张选票。 每张选票正好投给一位候选人,其中 \(i\) 票投给了候选人 \(A_i\)。 选票将按照从第一张到最后一张的顺序进行统计,每张选票统计完毕后,将更新并 ......
题解 Election Report Quick 329D

[ABC328D] Take ABC 题解

题目大意: 给你一个字符串 \(s\)。你要在其中找到多少个 ABC 的子串,例如 AABCBC 算两个,删掉中间的 ABC 后,前面的和后面的加起来也是一个 ABC,所以就算两个。 思路分析: 首先很容易写出暴力,把一个 ABC 提取出来后把后面的元素往前移,然后再重复操作,但是我们发现时间复杂度 ......
题解 ABC 328D Take 328

AT_abc324_e [ABC324E] Joint Two Strings 题解

题目大意 给你 \(n\) 个字符串 \(s\),和一个字符串 \(t\)。 问你,有多少组是 \(s_j\) 拼在 \(s_i\) 后面所组成的新字符串中,\(t\) 是其子序列。 思路 分析:\(5 \times 10^5\) 的数据肯定需要 \(O(n)\) 或 \(O(n \log n)\) ......
题解 324 Strings AT_abc Joint

[ABC327D] Good Tuple Problem 题解

分析: 这一道题很容易发现可以用并查集来维护 (不知道为什么其他人都用了图论),\(a_i\) 与其对应的 \(b_i\) 代表着 \(a_i\) 这个集合里不能存在着 \(b_i\)。 根据只有存在两个集合,所以我们会发现,若 \(x\) 与 \(y\) 不在一个集合且 \(x\) 与 \(z\) ......
题解 Problem Tuple 327D Good

[ABC321G] Electric Circuit 状压DP

用到了好多技巧的状压DP 我们先统计总数然后除以m的阶乘就可以了 设f[i]表示状态为i的集合造成的贡献数(也就是状态为i的集合 不与集合外的点联通 且 这个集合联通块数是1 的情况数) 不与集合外的点联通的话只用考虑结合i之间连边,集合外那些点之间两边就可以啦 这个集合联通块数是1 就比较难处理了 ......
Electric Circuit 321G ABC 321

abc290g O(TD)算法

前言 似乎洛谷上的题解和AT官方都给的 \(O(TD^2)\) 算法? 这里给出乱搞搞出的一种 \(O(TD)\) 算法。 题解 首先发现 \(D\) 虽然没给出固定上界,但显然不超过 \(log_2 10^{18}=60\)。 再接下来可以发现删边等价于先选一颗子树,再删掉这颗子树内部的子树。 先 ......
算法 290g abc 290 TD

[ABC328D] Take ABC 题解

链接 如果只是扫一遍肯定是不行的,所以我们使用一个栈,遇到 C 就判断栈顶的两个元素是不是分别为 B 和 A。这样就能做出来这道题了。 代码 #include<bits/stdc++.h> using namespace std; string s; char stk[200010]; int ma ......
题解 ABC 328D Take 328

AtCoder Beginner Contest(abc) 326

B - 326-like Numbers 难度: ⭐ 题目大意 如果一个三位数的百位和十位的乘积等于个位, 那么这个数就是合法的; 问大于等于n的最小的合法的数是多少; 解题思路 因为数据范围很小, 所以可以直接暴力; 神秘代码 #include<bits/stdc++.h> #define int ......
Beginner AtCoder Contest 326 abc

AtCoder Beginner Contest 329 (ABC329)

A. Spread 不说了,代码。 B. Next 不说了,代码。 C. Count xxx Description 给定一个长度为 \(N\) 的字符串 \(S\),求 \(S\) 中非空连续,并且包含重复字符的连续子串长度。 例如 $S = $ aaabaa,则它满足上述条件子串为 a,aa,a ......
329 Beginner AtCoder Contest ABC

[ABC329E]Stamp

为了方便,我们记 \(T\) 为印章。 不可能出现上图的情况(或者说无效),区间都必须是左右端点严格递增的。 发现新增一个区间,无非就是放在上面/下面两种情况。 考虑用 \(f[i][j]\) 表示前 \(i\) 个字母全部匹配,且第 \(i\) 个字母恰好在最右侧的模式串的第 \(j\) 个位置是 ......
Stamp 329E ABC 329

[ABC328C] Consecutive 题解

Hello World 链接 这道题是一个很明显的前缀和,我们把 $sum_i$ 表示为前 $i$ 个字符有多少个有重复,查询的时候就用 $sum_{r-1}-sum_{l-1}$ 就行了。 代码 #include<bits/stdc++.h> using namespace std; string ......
题解 Consecutive 328C ABC 328

[ABC326C] Peak 题解

题目链接 题目思路 这个问题要求找到一个半开区间,使得在这个区间内包含尽可能多的礼物。首先,我们需要将输入的礼物坐标按照从小到大的顺序进行排序。然后,我们可以使用双指针的方法来寻找最佳的区间。 代码 以下是代码解释: #include<bits/stdc++.h> using namespace s ......
题解 326C Peak ABC 326

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( ......
Beginner AtCoder Contest 329 abc

[ABC326D] ABC Puzzle 题解

题目链接 解法分析 这个问题是一个经典的排列谜题,通过回溯算法来穷举所有可能的字符排列,然后验证是否满足行和列约束。这个解决方案可以用于解决类似的谜题,其中需要满足一定的排列条件。通过仔细考虑约束条件,可以加快解决问题的速度,减少不必要的计算。 更详细的我写在代码里了。 代码 #include <b ......
题解 ABC Puzzle 326D 326

AtCoder Beginner Contest(abc) 296

B - Chessboard 难度: ⭐ 题目大意 给定一个8*8的字符矩阵, 其中只有一个' * ', 输出它的坐标; 其坐标的列用字母表示, 行用数字表示, 具体看样例解释; 解题思路 签到题不多嗦了; 神秘代码 #include<bits/stdc++.h> #define int long ......
Beginner AtCoder Contest 296 abc

AtCoder Beginner Contest(abc) 325

B - World Meeting 难度: ⭐ 题目大意 一家公司在全球多地都有分公司; 现在总公司想选择一个时间点让所有公司都来开会; 但是每个公司的上班时间是 9:00-18:00; 给定每个公司的人数和相对于总公司的时差, 会议持续一个小时, 请问总公司最多能让多少人参加会议 解题思路 因为数 ......
Beginner AtCoder Contest 325 abc

[ABC259Ex] Yet Another Path Counting

\(\text{Links}\) [ABC259Ex] Yet Another Path Counting Luogu Blog 题外话 淀粉质题单做不动了怎么办?来做一道根号题振奋一下精神吧/se! 我要饿死了,我要吃饭,以后在学校还是不要不吃早饭了/kk 题意 给一个 \(n\times n\) ......
Counting Another Path ABC 259

【题解 ABC180F】 Unbranched

[ABC180F] Unbranched 题面翻译 求 \(N\) 个点,\(M\) 条边且满足以下条件的图的数量: 图中无自环; 每个点度数最多为 \(2\); 连通块大小的最大值恰好为 \(L\)。 答案对 \(10^9+7\) 取模。 \(2\le N\le300\),\(1\le M,L\l ......
题解 Unbranched 180F ABC 180

[ABC288D] Range Add Query

先考虑将原序列差分一下,事实上,我们对于这类每次可以操作一个区间减去固定值的时候,我们一般都需要差分,因为差分后,我们的操作实际上相当于 **在差分序列上修改两个点**,这个时候的问题是好考虑的。 这时候问题转化为,我们每次可以选择两个距离恰好为 $k + 1$ 的点,将 $l$ 加上 $w$,将 ......
Range Query 288D ABC 288

AtCoder Beginner Contest(abc) 324

B - 3-smooth Numbers 难度: ⭐ 题目大意 给定一个数字n, 问是否可以找到两个数x和y, 使得 n = 2x3y; 解题思路 因为n的范围最大到1e18, 所以只需要暴力找x和y即可; 神秘代码 #include<bits/stdc++.h> #define int long ......
Beginner AtCoder Contest 324 abc

abc280F - Pay or Receive(判断是否全为零环)

https://atcoder.jp/contests/abc280/tasks/abc280_f 对于每一个连通块单独处理,首先判断是否全为0环,可以用bfs判断。 从一个点出发计算其他点到它的最短距离,如果存在一个不唯一,说明存在非零环。 然后计算距离的时候直接-d[x]+d[y]即可 #inc ......
Receive 280F abc 280 Pay

[ABC090D] Remainder Reminder

原题链接: 洛谷 $\ $ AtCoder 如果你觉得 \(O(n)\) 没有跑到极限的话,你可以试试整除分块。 先来化一下式子: \[\sum\limits_{i=1}^n\sum\limits_{j=1}^n\;[i\bmod j\ge k] \]\[\sum\limits_{i=1}^n\su ......
Remainder Reminder 090D ABC 090

AT_abc265_d 题解

### 题意 给出一串数,请尝试在这串数中找到三段**连续**的子段,使得这三个子段的和分别为 $P$、$Q$ 和 $R$。问:是否可行? ### 思路 通过观察,观察我们可以发现,其实我们可以根据题目的要求写出一段关系式: $A+P+Q+R+B$(其中 $A$ 表示被选子段前面没被选的子段和,其中 ......
题解 AT_abc 265 abc AT

abc327F - Apples(线段树)

https://atcoder.jp/contests/abc327/tasks/abc327_f 我们将时间看作x轴,位置看作y轴,那么我们随着时间增加,维护新加的点对区间的贡献,同时减去过时的点,线段树区间加法维护最大值即可。 #include<cstdio> #include<algorith ......
线段 Apples 327F abc 327