哔哩哔哩2018.9.21笔试 小A最多会新认识多少人

题目描述

小A参加一个n人的活动,每个人都有一个编号(0<=i<=n-1),其中有m对相互认识,在活动中两个人可以通过互相都认识都认识的一个人介绍认识。现在问活动结束后,小A最多会认识多少人?
输入:
第一行是聚会人数n
第二行是小A的编号a
接下来m行为互相认识的对,以’,'分割
输出:
小A最多会认识多少人的人数。
样例输入:
7
5
6
1,0
3,1
4,1
5,3
6,1
6,5
样例输出:
3
提示:
小A新认识的人为【0,1,4】

深度遍历

在这里插入图片描述
1.分析这句话“个人可以通过互相都认识都认识的一个人介绍认识”,所以最终,有间接认识关系的人都会互相认识。

2.该问题是一个无向图的深度遍历。深度递归到的节点都是小A的朋友(包括初始朋友和新朋友)。

3.在深度遍历的过程中,把小A新认识的人加入一个集合中,最后输出这个集合的长度。

4.注意不要把小A和小A初始已经认识的朋友加入集合中

5.考虑到整个图可能是不连通的,所以必须从a开始进行深度遍历

n = eval(input())
a = eval(input())
m = eval(input())
from collections import defaultdict
d = defaultdict(list)
for i in range(m):
    start,end  = map(int,input().split(','))
    d[start].append(end)
    d[end].append(start)

visited = [False]*n
visited[a] = True
friend = set()

def recur(i):
    if (i != a) and (i not in d[a]):
    	#注意不要把小A和小A初始已经认识的朋友加入集合中
        friend.add(i)
    if (d[i] == []):
        return
    for re in d[i]:
        if visited[re] == False:
            visited[re] = True
            recur(re)
            #visited[re] = False
            #注意这里在递归回来时不用恢复visited,因为在这里只需要考虑深度遍历到的有哪些节点
            #而是不是新朋友,交给递归函数里的第一个if判断就可以了
            #加了这句反而会使有些节点被重复得递归到
            
recur(a)
print(len(friend))

该代码中如果没有注释掉visited[re] = False,有些递归分支会作一些无用功。比如递归到6后,会递归到1;而递归到3后,又会递归到1(之后还有重复的递归)。

思考与总结

虽然你看我现在思路这么清晰,当时笔试的时候却理解错了题意,我以为输出集合是【3,6,1】,因为以为此题是深度遍历但最大深度为2,然后代码通过率一直只有67%(多亏测试用例“设计得好”,不然我感觉连67%都没有,手动苦瓜脸)。做题还是应该把题意理解清楚了再做。

看来我是没有机会用爱发电了,债见B站。

### 回答1: 哔哩哔哩的audio.m4s是一种音频文件格式,常用于在线音乐、视频等媒体内容的存储和传输。通常在哔哩哔哩网站上播放音频时,会将音频数据分割为多个m4s格式的片段进行传输和缓存,以提供更好的音频播放体验。 使用audio.m4s文件格式的好处是可以将音频数据分割成若干片段,这样在播放过程中可以根据网络状况和设备性能来动态加载和播放音频片段。这种分段加载的方式可以提高音频播放的流畅度和稳定性,并且可以根据需要进行预加载和缓存,减少用户等待时间。 另外,哔哩哔哩的audio.m4s还支持压缩音频数据,可以有效减小文件大小,提高下载速度和节省存储空间。它采用了先进的音频编码技术,可以提供高质量的音频播放效果。 总的来说,哔哩哔哩的audio.m4s是用于存储和传输音频数据的一种文件格式。它采用分段加载和压缩等技术,为用户提供了更好的音频播放体验,同时也提高了播放效率和节省了存储空间。 ### 回答2: 哔哩哔哩(B站)的audio.m4s是一种音频文件格式,常用于媒体播放器或网络平台上的音频流传输。这种文件格式通常包含了音频数据的编码信息和元数据。 在B站中,audio.m4s文件通常是与视频文件(.mp4或其他格式)配套出现的。这是由于视频文件中除了视频数据外,还需要音频数据来实现声音的播放。为了减小文件体积和提升加载速度,B站会将视频与音频数据分开存储,分别保存为.video.m4s和.audio.m4s文件。这样,用户在播放视频时,会同时加载和播放这两个文件来实现完整的音视频播放体验。 对于audio.m4s文件本身,它采用了MPEG-4 Part 14标准的音频编码,具体编码方式可能是AAC (Advanced Audio Coding)或其他音频编码方式。这样的编码方式能够实现高质量的音频传输和较小的文件体积,使得用户能够流畅地听到视频中的音频。 总的来说,哔哩哔哩的audio.m4s文件是用于存储视频文件中的音频数据的文件格式。它通过特定的音频编码方式来实现高质量的音频传输,从而为用户提供良好的音视频播放体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值