摘要: 提示:萌新不会写substr,所以本篇是适合新手阅读的题解。 PART 01 读入 我们可以利用C++语言的特性,把字符串读入写入循环条件里: for( ; cin>>s[cnt] ; ){ //C++语言特性 cnt++; } 为了避免变量重名,也为了为字符串数组提供指针,用 cnt 表示目前读入 阅读全文
posted @ 2022-01-26 17:47 Shunpower 阅读(72) 评论(0) 推荐(0) 编辑
摘要: PART 01:思路 我们知道最后的字符串一定是一个左右两边为括号的串,所以先找一波括号。 第一步,找左右括号。 接着在两个括号之间找出两个冒号,所以还要存下左右括号的下标。 第一步,找左右括号并存下下标。 第二步,找左右冒号。 最后在两个冒号之间找 \(|\) 字符,所以还要存下冒号的下标。 第一 阅读全文
posted @ 2022-01-26 17:46 Shunpower 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 题目大意 对于一个无向无权联通图 \(G\),有 \(n\) 个点 \(m\) 条边,往这个图里没有被连接的两个点之间连边,问有多少连法可以使得 \(s\) 到 \(t\) 的最短路长度不变。 解决思路 2.1 暴力做法 可以枚举任意两个点,对于每次连接使用 bfs 求最短路,计算出时间复杂度为 \ 阅读全文
posted @ 2022-01-26 17:45 Shunpower 阅读(48) 评论(0) 推荐(0) 编辑
摘要: 题目大意 现在有 \(n\) 个学生,每个学生的水平为 \(a_i\),允许你往其中添加 \(k\) 个任意水平的学生。现在要求你把这 \(n\) 个学生分成几组,使得每一组中的水平大小相邻的学生的水平绝对差小于等于 \(x\)。 思路分析 考虑贪心 可以先对学生的水平排一下序,算绝对差,把绝对差存 阅读全文
posted @ 2022-01-26 17:45 Shunpower 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 可能更好的阅读体验 思路 很简单的贪心,我们可以把打分的情况分为三种讨论。 显然,如果要使得答案尽量大,就尽量把除最小得分以外的分数都加成最大的分数。我们可以假设要把除最小值、最大值以外的分数都变成最大分需要加 \(sum\) 分,这样就可以举出三种情况: 1.\(sum=m\),刚好可 阅读全文
posted @ 2022-01-26 17:44 Shunpower 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 题目大意 首先,本题含有多组数据。 对于每组数据,考虑两个下标 \(i,j\) 在一个长度为 \(n\) 的序列 \(a\) 中,若 \(1\leqslant i < j \leqslant n \land gcd(a_i,2a_j)>1\) 则称这对 \((i,j)\) 是优美的数对,请问怎样安排 阅读全文
posted @ 2022-01-26 17:41 Shunpower 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 题目大意 有 \(t\) 组测试数据。 对于每一组测试数据,有 \(n\) 个糖果堆,每个糖果堆都有 \(a_i\) 颗糖果,请问可不可以把所有糖果分平均? 如果可以输出最少要分几次才能平均,不可以就输出 \(-1\)。 思路 2.1 考虑不行的情况 把所有的糖果堆里的糖果数量加在一起得到和 \(s 阅读全文
posted @ 2022-01-26 17:40 Shunpower 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 题目大意 有 \(t\) 组数据,每组数据是一个长度为 \(n\) 的数列,现在要你求出需要往数列中加入多少个非负整数才能使得数列的平均数为 \(1\)。 解决思路 考虑各种情况 如果平均数大于 \(1\),我们就要把平均数降下来,那肯定不能往里面加正数,只能往数列里加 \(0\) 。 如果平均数等 阅读全文
posted @ 2022-01-26 17:38 Shunpower 阅读(49) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 可能更好的阅读体验 题目大意 对于一个有向图 \(G\):有 \(N\) 个点,\(M\) 个边,把每一条边用三元组 \((S_i,T_i,W_i)\),其中 \(S_i,t_i\) 表示两个端点,\(W_i\) 表示这条边的长度。 如果这个图中从点 \(1\) 到点 \(N\) 的最短 阅读全文
posted @ 2022-01-26 17:33 Shunpower 阅读(41) 评论(0) 推荐(0) 编辑
摘要: 思路解析 这题主要分为两个部分:回文,字符串。 字符串的部分可以使用 C++ 自带的 \(\texttt{string}\) 型变量(字符串)进行操作,这题要用到 \(\texttt{string}\) 型变量中自带的可以返回字符串长度的length()函数。 回文的部分,我们可以根据题目内对回文的 阅读全文
posted @ 2022-01-26 17:32 Shunpower 阅读(808) 评论(0) 推荐(0) 编辑
摘要: 思路 考虑分情况讨论。 我们可以枚举出有一个空格、两个空格、三个空格、全是空格的情况,再跑DFS,可以使用记忆化搜索进行优化。 实现 2.1:编写判断函数 为了判断目前的状态与我们需要的状态是否一致,可以直接写一个 \(\texttt{bool}\) 函数判断: bool check(int x,i 阅读全文
posted @ 2022-01-26 17:31 Shunpower 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 思路 欧拉路径的性质在于,起点入度比出度少一(图是一个环除外),终点出度比入度少一(图是一个环除外),其它点的入度和出度相等。 所以我们只要先用 \(O(m)\) 读入边,再 \(O(n)\) 判定是否有起点和终点即可。值得注意的是,因为欧拉路径每条边必须走且只能走一次,我们有必要在存边的时候,同时 阅读全文
posted @ 2022-01-26 16:59 Shunpower 阅读(68) 评论(0) 推荐(0) 编辑
摘要: 观前提示:棋盘上的行、一大行都是指的 \(a\cdot b\cdot c\) 的一行。一小行则是 \(1\cdot c\) 的一行。 思路 先初始化出 \(r\) 个值表示棋盘第 \(r\) 行的开头颜色,用数组 \(col\) 进行存储,\(col_i\) 表示棋盘第 \(i\) 行的开头颜色。比 阅读全文
posted @ 2022-01-26 16:59 Shunpower 阅读(64) 评论(0) 推荐(0) 编辑
摘要: 思路 把建出来的树进行 DFS,用类似最短路的方法跑出一个视频到每个视频的相关性(下文中用“单源相关性”描述)。为了防止多次跑同一个视频的 “单源相关性”,可以使用一个二维数组记录,第二次询问到这个视频时可以直接读取。 代码 2.1 建树 for(int i=1;i<=n-1;i++){ int x 阅读全文
posted @ 2022-01-26 16:58 Shunpower 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 思路 首先把题干丢进翻译,发现并没有什么作用。 1.1 题目意义的分析 所以可以分析一下 \(2+2=-46\) 的小样例看能不能从中得到什么信息。 利用简单的数学计算出 \(2+2=4\),和我们需要的答案差了 \(50\)。所以可以这样想,在这个题目里 \(+2\) 等同于 \(-48\)。 恰 阅读全文
posted @ 2022-01-26 16:56 Shunpower 阅读(28) 评论(0) 推荐(0) 编辑
摘要: solution-p4380 阅读全文
posted @ 2022-01-26 16:53 Shunpower 阅读(83) 评论(0) 推荐(0) 编辑
摘要: 考场上唯一 A 的题,T3 因为没写返回值造成的差异爆掉了。 题意简述 在开区间 \((l,r)\) 取一个数 \(x\) 使得 \(x\bmod n\) 的最大。 思路 很容易想到暴力,把 \(l\) 到 \(r\) 全扫一遍就行,得分 \(70\)。 但是可以发现,在 \((l,r)\) 这一段 阅读全文
posted @ 2022-01-26 16:50 Shunpower 阅读(428) 评论(0) 推荐(0) 编辑
摘要: 赛时唯一做出来的题,这题水过了其它都不会做。/ll 题意 给你一个由a和b组成的字符串 \(s\),改变其中一个字符(变a为b,变b为a)使得其中AB子串的数量和BA子串的数量相等。 思路 看到 \(s\) 的长度不超过 \(100\),考虑大暴力。 枚举每一个字符,计算变换该字符后AB和BA的个数 阅读全文
posted @ 2022-01-26 16:49 Shunpower 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 不愧是数学场…… 题意 有 \(t\) 组数据,每组数据中包含一个 \(n\) 以及一个包含 \(n\) 个元素的序列 \(a\),请在这个序列中添加一些数使得对于每一个原始元素以及加入的元素都存在 \(a_i\leqslant i\)。输出至少需要加多少数达到目标。 数据范围:\(1\leqsla 阅读全文
posted @ 2022-01-26 16:48 Shunpower 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 前情提要 考场上写出了这题满分做法(无论是民间数据还是官方数据),可惜少了一句return true;造成 RE……,于是一等奖变三等奖(可能压线二等),Lemon 衷心希望大家不再犯这样的错误写了这篇题解。 思路 考虑分成两个部分,判断合法和连接服务机(或建立连接)。 第二个部分可以通过 STL 阅读全文
posted @ 2022-01-26 16:48 Shunpower 阅读(369) 评论(0) 推荐(0) 编辑