01 2022 档案

摘要:提示:萌新不会写substr,所以本篇是适合新手阅读的题解。 PART 01 读入 我们可以利用C++语言的特性,把字符串读入写入循环条件里: for( ; cin>>s[cnt] ; ){ //C++语言特性 cnt++; } 为了避免变量重名,也为了为字符串数组提供指针,用 cnt 表示目前读入 阅读全文
posted @ 2022-01-26 17:47 Shunpower 阅读(77) 评论(0) 推荐(0) 编辑
摘要:PART 01:思路 我们知道最后的字符串一定是一个左右两边为括号的串,所以先找一波括号。 第一步,找左右括号。 接着在两个括号之间找出两个冒号,所以还要存下左右括号的下标。 第一步,找左右括号并存下下标。 第二步,找左右冒号。 最后在两个冒号之间找 | 字符,所以还要存下冒号的下标。 第一 阅读全文
posted @ 2022-01-26 17:46 Shunpower 阅读(42) 评论(0) 推荐(0) 编辑
摘要:题目大意 现在有 n 个学生,每个学生的水平为 ai,允许你往其中添加 k 个任意水平的学生。现在要求你把这 n 个学生分成几组,使得每一组中的水平大小相邻的学生的水平绝对差小于等于 x。 思路分析 考虑贪心 可以先对学生的水平排一下序,算绝对差,把绝对差存 阅读全文
posted @ 2022-01-26 17:45 Shunpower 阅读(36) 评论(0) 推荐(0) 编辑
摘要:题目大意 对于一个无向无权联通图 G,有 n 个点 m 条边,往这个图里没有被连接的两个点之间连边,问有多少连法可以使得 st 的最短路长度不变。 解决思路 2.1 暴力做法 可以枚举任意两个点,对于每次连接使用 bfs 求最短路,计算出时间复杂度为 \ 阅读全文
posted @ 2022-01-26 17:45 Shunpower 阅读(60) 评论(0) 推荐(0) 编辑
摘要:题目传送门 可能更好的阅读体验 思路 很简单的贪心,我们可以把打分的情况分为三种讨论。 显然,如果要使得答案尽量大,就尽量把除最小得分以外的分数都加成最大的分数。我们可以假设要把除最小值、最大值以外的分数都变成最大分需要加 sum 分,这样就可以举出三种情况: 1.sum=m,刚好可 阅读全文
posted @ 2022-01-26 17:44 Shunpower 阅读(185) 评论(0) 推荐(0) 编辑
摘要:题目大意 首先,本题含有多组数据。 对于每组数据,考虑两个下标 i,j 在一个长度为 n 的序列 a 中,若 1i<jngcd(ai,2aj)>1 则称这对 (i,j) 是优美的数对,请问怎样安排 阅读全文
posted @ 2022-01-26 17:41 Shunpower 阅读(34) 评论(0) 推荐(0) 编辑
摘要:题目大意 有 t 组测试数据。 对于每一组测试数据,有 n 个糖果堆,每个糖果堆都有 ai 颗糖果,请问可不可以把所有糖果分平均? 如果可以输出最少要分几次才能平均,不可以就输出 1。 思路 2.1 考虑不行的情况 把所有的糖果堆里的糖果数量加在一起得到和 \(s 阅读全文
posted @ 2022-01-26 17:40 Shunpower 阅读(27) 评论(0) 推荐(0) 编辑
摘要:题目大意 有 t 组数据,每组数据是一个长度为 n 的数列,现在要你求出需要往数列中加入多少个非负整数才能使得数列的平均数为 1。 解决思路 考虑各种情况 如果平均数大于 1,我们就要把平均数降下来,那肯定不能往里面加正数,只能往数列里加 0 。 如果平均数等 阅读全文
posted @ 2022-01-26 17:38 Shunpower 阅读(52) 评论(0) 推荐(0) 编辑
摘要:题目传送门 可能更好的阅读体验 题目大意 对于一个有向图 G:有 N 个点,M 个边,把每一条边用三元组 (Si,Ti,Wi),其中 Si,ti 表示两个端点,Wi 表示这条边的长度。 如果这个图中从点 1 到点 N 的最短 阅读全文
posted @ 2022-01-26 17:33 Shunpower 阅读(42) 评论(0) 推荐(0) 编辑
摘要:思路解析 这题主要分为两个部分:回文,字符串。 字符串的部分可以使用 C++ 自带的 string 型变量(字符串)进行操作,这题要用到 string 型变量中自带的可以返回字符串长度的length()函数。 回文的部分,我们可以根据题目内对回文的 阅读全文
posted @ 2022-01-26 17:32 Shunpower 阅读(966) 评论(0) 推荐(0) 编辑
摘要:思路 考虑分情况讨论。 我们可以枚举出有一个空格、两个空格、三个空格、全是空格的情况,再跑DFS,可以使用记忆化搜索进行优化。 实现 2.1:编写判断函数 为了判断目前的状态与我们需要的状态是否一致,可以直接写一个 bool 函数判断: bool check(int x,i 阅读全文
posted @ 2022-01-26 17:31 Shunpower 阅读(48) 评论(0) 推荐(0) 编辑
摘要:思路 欧拉路径的性质在于,起点入度比出度少一(图是一个环除外),终点出度比入度少一(图是一个环除外),其它点的入度和出度相等。 所以我们只要先用 O(m) 读入边,再 O(n) 判定是否有起点和终点即可。值得注意的是,因为欧拉路径每条边必须走且只能走一次,我们有必要在存边的时候,同时 阅读全文
posted @ 2022-01-26 16:59 Shunpower 阅读(74) 评论(0) 推荐(0) 编辑
摘要:观前提示:棋盘上的行、一大行都是指的 abc 的一行。一小行则是 1c 的一行。 思路 先初始化出 r 个值表示棋盘第 r 行的开头颜色,用数组 col 进行存储,coli 表示棋盘第 i 行的开头颜色。比 阅读全文
posted @ 2022-01-26 16:59 Shunpower 阅读(71) 评论(0) 推荐(0) 编辑
摘要:思路 把建出来的树进行 DFS,用类似最短路的方法跑出一个视频到每个视频的相关性(下文中用“单源相关性”描述)。为了防止多次跑同一个视频的 “单源相关性”,可以使用一个二维数组记录,第二次询问到这个视频时可以直接读取。 代码 2.1 建树 for(int i=1;i<=n-1;i++){ int x 阅读全文
posted @ 2022-01-26 16:58 Shunpower 阅读(52) 评论(0) 推荐(0) 编辑
摘要:思路 首先把题干丢进翻译,发现并没有什么作用。 1.1 题目意义的分析 所以可以分析一下 2+2=46 的小样例看能不能从中得到什么信息。 利用简单的数学计算出 2+2=4,和我们需要的答案差了 50。所以可以这样想,在这个题目里 +2 等同于 48。 恰 阅读全文
posted @ 2022-01-26 16:56 Shunpower 阅读(30) 评论(0) 推荐(0) 编辑
摘要:solution-p4380 阅读全文
posted @ 2022-01-26 16:53 Shunpower 阅读(87) 评论(0) 推荐(0) 编辑
摘要:考场上唯一 A 的题,T3 因为没写返回值造成的差异爆掉了。 题意简述 在开区间 (l,r) 取一个数 x 使得 xmodn 的最大。 思路 很容易想到暴力,把 lr 全扫一遍就行,得分 70。 但是可以发现,在 (l,r) 这一段 阅读全文
posted @ 2022-01-26 16:50 Shunpower 阅读(573) 评论(0) 推荐(0) 编辑
摘要:赛时唯一做出来的题,这题水过了其它都不会做。/ll 题意 给你一个由a和b组成的字符串 s,改变其中一个字符(变a为b,变b为a)使得其中AB子串的数量和BA子串的数量相等。 思路 看到 s 的长度不超过 100,考虑大暴力。 枚举每一个字符,计算变换该字符后AB和BA的个数 阅读全文
posted @ 2022-01-26 16:49 Shunpower 阅读(30) 评论(0) 推荐(0) 编辑
摘要:不愧是数学场…… 题意 有 t 组数据,每组数据中包含一个 n 以及一个包含 n 个元素的序列 a,请在这个序列中添加一些数使得对于每一个原始元素以及加入的元素都存在 aii。输出至少需要加多少数达到目标。 数据范围:\(1\leqsla 阅读全文
posted @ 2022-01-26 16:48 Shunpower 阅读(37) 评论(0) 推荐(0) 编辑
摘要:前情提要 考场上写出了这题满分做法(无论是民间数据还是官方数据),可惜少了一句return true;造成 RE……,于是一等奖变三等奖(可能压线二等),Lemon 衷心希望大家不再犯这样的错误写了这篇题解。 思路 考虑分成两个部分,判断合法和连接服务机(或建立连接)。 第二个部分可以通过 STL 阅读全文
posted @ 2022-01-26 16:48 Shunpower 阅读(379) 评论(0) 推荐(0) 编辑
摘要:考场上想出了近似做法,可惜没有实现出来。 题意 有 t 组数据,每组都是一个有 n 个元素的序列 a,考虑将此序列分割成若干段。假设第 i 段的 LIS(最长上升子序列)长度为 hi,请问是否有一种分割方式使得 \(h_1 \oplus h_2\oplus\ 阅读全文
posted @ 2022-01-26 16:47 Shunpower 阅读(34) 评论(0) 推荐(0) 编辑
摘要:思路 求最大值,不是二分答案就是贪心。这里很难二分所以考虑贪心。很容易想到贪心策略,从左往右扫,右侧的数 <0 就减,右侧的数 >0 就加,如果右侧的数是 0 无所谓。 考虑证明。对于 2 个数(假设第一个是 x,第二个是 y)的情况明显有: 当 \( 阅读全文
posted @ 2022-01-26 16:46 Shunpower 阅读(48) 评论(0) 推荐(0) 编辑
摘要:这题非常有意思。 思路和代码 首先观察那份 Pascal 代码,由于 Pascal 代码非常好懂,即使是 C++ 党也能轻易看懂,所以这里不再赘述分析过程。我们可以转出下面的代码: for(int i=n-1;i>=1;i--){ cnt++; if(n%i==0){ break; } } cout 阅读全文
posted @ 2022-01-26 16:45 Shunpower 阅读(63) 评论(0) 推荐(0) 编辑
摘要:思路 模拟。 考虑计算字符串中匹配括号的个数。因为每一个匹配括号组一定对应了一个()的子序列,而我们需要使得匹配的括号子序列最多,所以匹配括号的个数一定等于匹配括号子序列的最多个数。 先求一下匹配括号的个数,看看是不是 m 即可。 代码 非常好写。 void solve( 阅读全文
posted @ 2022-01-26 16:44 Shunpower 阅读(30) 评论(0) 推荐(0) 编辑
摘要:思路 题意其它题解已经写得很明确了。 一道简单的模拟,按照题意模拟即可。 首先把字符串转换成一堆数,然后按照题目中的操作一直操作道得到的字符串长度为 3,再检查这个字符串是否为100。 代码 2.1 将字符串转成数 这一步只在最开始的时候有作用。 string tostr(int t){ s 阅读全文
posted @ 2022-01-26 16:43 Shunpower 阅读(53) 评论(0) 推荐(0) 编辑
摘要:思路 考虑先构造数列使得乘积等于 n。 明显地,直接对 n 分解质因数即可。由于这样分解出来的数列具有最小和,所以判断仅由 n 质因数组成的数列和 sumk 的大小关系即可。 如果 sum=k,就可以直接输出了。但是 sum<k 怎么办呢 阅读全文
posted @ 2022-01-26 16:42 Shunpower 阅读(48) 评论(0) 推荐(0) 编辑
摘要:思路 考虑先确定一个数可不可以被报出来。 考虑递归定义布尔函数 f(x) 表示 x 不可以报出来,那么: \[ \begin{cases} 1, &f(x\bmod 10)\land x\bmod 10\neq 7 \\ 1, &\forall y|x\land f(y) \\ 0, 阅读全文
posted @ 2022-01-26 16:40 Shunpower 阅读(110) 评论(0) 推荐(0) 编辑
摘要:思路 直接想法,为了使后面的一个数不能够被前面的那个数整除,只需要保证前后两个数都是质数就可以了。 但是我们并不想算多少以内能够有 1000 个质数,所以我们搞线性筛,处理 107 内的质数(其实并不需要这么多,请读者自行尝试处理多少以内就够了)。 代码 2.1 线性筛 如果你还不 阅读全文
posted @ 2022-01-26 16:35 Shunpower 阅读(46) 评论(0) 推荐(0) 编辑
摘要:前置知识 您需要知道如何求桥,否则请移步 P1656 炸铁路 的 Tarjan 做法。 您需要知道边双连通分量的基本性质。 思路 提示:接下来所有形似“uv 路径的点权和”的描述中,点权和都包括 u,v 的点权。 当火星猫走过一条路之后,这条路就不能再走了 从这句话我们可以想 阅读全文
posted @ 2022-01-26 16:34 Shunpower 阅读(63) 评论(0) 推荐(0) 编辑
摘要:思路 非常显然的结论:无论 Rahul 坐在哪里,Tina 为了使离他最远,都要坐在一个角落。而且这个角落一定是四个角落中距离 Rahul 最远的。 所以说我们可以考虑预处理出对于每一个位置距离最远的那一个角落,把这个最远的距离存在一个数组里面。 感性理解一下。一开始的时候,两人的距离一定会比较近( 阅读全文
posted @ 2022-01-26 16:33 Shunpower 阅读(50) 评论(0) 推荐(0) 编辑
摘要:前情提要 个人认为,本题是 CF1280B 的弱化,如果您切掉了这道题,可以去尝试尝试。 思路 分类讨论。 (r,c) 本身是一个黑块。显然,答案为 0。 有至少一个黑块与 (r,c) 同行或同列,显然对这个黑块操作 1 次即可。 不符合以上两种情况,但整个网格中有黑 阅读全文
posted @ 2022-01-26 16:31 Shunpower 阅读(78) 评论(0) 推荐(0) 编辑
摘要:在 @XSC062 的基础上补充。 使用 VSC 进行统计。 本次 CSP-J 得到的代码中最高编号为 522,实际提交代码成功的选手只有 374。CCF 又捞了一笔 基础数据 在 1402 文件中有 2027 个include,但只有 886 文件使用了万能 阅读全文
posted @ 2022-01-26 16:26 Shunpower 阅读(1952) 评论(2) 推荐(2) 编辑
摘要:upd on 2021.12.4 这篇文章中会有说 CQ 有 27 名选手提到fuck,贴出了 8 个含有fuck的程序。如果你是写这些程序的选手,请告诉我,我会撤下的,我不希望因为没有撤下而带给您麻烦。 int f,k_ccf; cin>>f>>k_ccf; cout<<f**k_ 阅读全文
posted @ 2022-01-26 16:21 Shunpower 阅读(826) 评论(0) 推荐(1) 编辑
摘要:2021.8.17/18 因为被 Chery 说学习态度极差,去了另一个老师班上,好严格 QAQ 2021.8.25 此时距离初赛还有23天。 现在保持着两天模拟赛一天讲评的效率,感谢洛谷题解里的神仙和 Chery 给我生命。 今天下午膜你赛的评价: T1 广搜用队列做我是没想到的我一开始打算用栈 阅读全文
posted @ 2022-01-26 16:10 Shunpower 阅读(162) 评论(0) 推荐(0) 编辑
摘要:因为一开始给 CSP 游记取了一个爆炸记,然后就真的爆炸了,所以取一个吉利的名字。 CSP-S 使用假 T1 做法以及 T2 22n 做法草到了 NOIp。 URL 来自 WYXkk 的犇犇。 Day -1 终于知道中午其实可以到机房水帖背平衡树板子。 这段话打自 11 月 \ 阅读全文
posted @ 2022-01-26 16:05 Shunpower 阅读(67) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示