嗨嗨嘿,我老八又来补题啦,虽然不在同一个时间,但在同一个厕 。。博客,看我老八吃。。补题!
一.题目报告
嗨嗨嘿,我™又来了,今天这套题难度适中,满分400,我总分130;第一题AC,第二题30,T3&&T4。。。0分,拿不到啊啊啊!!!
二.赛中情况
赛中1题AC,剩余三题赛后AC。赛中先做了A,样例过了,放手去做B了,B题找到了规律,发现有机可偷,但是忘记考虑进位问题,只拿了30分,在C题徘徊了一会后放弃了,转头看向D题,输出了个样例就跑了(实在是不敢恭维啊),转头就向我最自信的A题去给它造数据了,造着造着就出问题了,改了之后,又出了个问题,让本蒟蒻很是紧张,改完之后,就离考试结束就剩20分钟了,检查文件格式之后就到点了。
三.题目解析
T1:重复判断(repeat)
题目大意:
小可需要判断一个字符串a,是否由另一个字符串b生成出来的,所谓的生成,其实就是把字符串b重复若干次,即:判断字符串a是否是字符串b重复若干次得到的
题目解析:
这题很简单,模拟+判断即可
AC code:
AC code(2):
AC code(3):
T2:歪果仁学乘法(multiplication)
题目大意:
歪果仁不太会乘法,原因是他们被不过九九乘法表,小可听到之后,提出了一种不需要九九乘法表也可以计算乘法的方式,对于a × b:
1. 将a,b的每一位上的数码画成线,不同位之间分隔开。
2. a 和 b 的方向垂直画出。
3. 数出每个方向上交点的个数,即是 c 对应位置上的数码。
样例图给出了计算12 ×13的方法:
1. 红色线分别画出 1 条和 2 条;
2. 蓝色线分别画出 1 条和 3 条;
3. 数出红、蓝色线的交点个数,依次为 1,5,6 个;
4. 得到答案:12 × 13 = 156。
给出两个数字 a, b,求它们的乘积时交点的总个数是多少
题目解析:
给套公式:(a%10)*(b%10)+(a%10)*(b/10)+(a/10)*(b%10)+(a/10)*(b/10)
AC code:
T3:去重求和(summation)
题目大意:
小可有一个长度为 n 的序列 。
他定义sum(l,r),为 a[l]~a[r],这些数去重之后的和
请求出
题目解析:
提前声明中点并不唯一,中点其实就是标记点,标记点是不唯一的,了解后请看下方
1.此类题怎么找入手点呢?
找特殊情况,如本题,找没有重复点的情况
在特殊情况下:
左节点有3种可能,右节点有6种可能,利用乘法原理,求出3*6=18,知道了有18种可能(18并不是最终结果,仅是思路点);
2.推广到一般情况该怎么办呢?
一般情况那就是有重复的点,如图:
还是以4为中点,但是这组数据之中有重复点,所以说,在进行乘法原理的时候要减去一次可能性,本组数据就是:左边可能4种,右边5种可能,但有重复点“1”,所以要在左右各减一种可能
本题整体思路:
画图可得,把有入度的相关点的重叠点,变成一个大点B,是一次modify操作。
整体把1、4、5点,合成一个大点,最终变成3个点。
要是把5 4边去掉,就没有融合的大点,最小点数,仍然保持5个点。
发现在一个单向链上,只需要让链头的两个点进行一次操作就可以将整个链变成两个点。
所以每次操作可以在一条所含点数超过 2 的单向链上进行,直至不能继续操作,剩下的点的个数即为图中剩余的最小点数。
由上面操作的特殊性可以知道所有入度为 0 的点删不掉,所有满足所有入边对应点入度为 0 的点也删不掉,可以将这些点(所有满足所有入边对应点入度为 0 的点)看成新点。统计这些点个数即可。
AC code(模拟):
AC code(图的应用)(2):
T4:点集操作(point)
题目大意:
小可在学习图论,他有一个有向无环图,他想知道对这个图做任意次 操作之后的图中剩余的最小点数,其中 ,其中 为一次操作:
1. 任选不同的两个点
2. 称 为 能到达的所有点组成的点集, 为 能到达的所有点组成的点集 。(注意:每个点可
以到达的点集包含这个点本身)
3. 设 B 为一个最大的点集,满足 B 既是 的子集,又是 的子集 。
4. 将 B 在图中变成一个新点,B 内的所有边全部删除。点集 B 以外的点与点集 B 以内的点的连边关
系转移到新点上。
题目解析:
样例画图可得,把有入度的相关点的重叠点,变成一个大点B,是一次modify操作。
整体把1、4、5点,合成一个大点,最终变成3个点。
要是把5 4边去掉,就没有融合的大点,最小点数,仍然保持5个点。
发现在一个单向链上,只需要让链头的两个点进行一次操作就可以将整个链变成两个点。
所以每次操作可以在一条所含点数超过 2 的单向链上进行,直至不能继续操作,剩下的点的个数即为图中剩余的最小点数。
由上面操作的特殊性可以知道所有入度为 0 的点删不掉,所有满足所有入边对应点入度为 0 的点也删不掉,可以将这些点(所有满足所有入边对应点入度为 0 的点)看成新点。统计这些点个数即可
AC code:
四.赛后总结
说了这么多,总结一下,这次比赛是我这几次比赛中打的最好的一次,但这个成绩想拿一将肯定是不够的,希望自己今后在骗分方面可以增强一下,在接下来的集训中继续努力吧。今天是集训的最后一个晚上,当然周内还会有集训课,但这5天让我收获很多,也让我进步很多,祝我和同学们在csp-j的复赛上大放光彩,人人拿到想要的分数,打出最漂亮的成绩!!!
2023.10.4-------耿卿涵