DAY5补题报告

        嗨嗨嘿,我老八又来补题啦,虽然不在同一个时间,但在同一个 。。博客,看我老八。。补题!


一.题目报告

嗨嗨嘿,我™又来了,今天这套题难度适中,满分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],这些数去重之后的和
请求出

\sum_{l=1}^{n}\sum_{r=1}^{n}sum(l,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-------耿卿涵

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值