题解 | #手串#

手串

https://www.nowcoder.com/practice/0bb1fad52f474bdaa4d7636ca3a98244

n,m,c=list(map(int,input().split()))
res=[] # 用于记录输入的数据
for i in range(n):
    num=list(map(int,input().split()))
    res.append(num)
idx=[] # 用于记录每种颜色出现的位置
for x in range(1,c+1):
    temp=[] # 用于记录第x个颜色出现过的位置
    for i in range(n):
        if x in res[i][1:]:
            temp.append(i)
    idx.append(temp)
ans=0 # 用于记录不满足要求的颜色数
for i in range(c):
    if len(idx[i])>1:
        for j in range(len(idx[i])):
            if j==0:
                if n-idx[i][-1]<=m-1: # 首位对比,应对环形
                    ans+=1
                    break
            else:
                if idx[i][j]-idx[i][j-1]<m: # 出现同一颜色的位置差小于m则视为连续m个珠子中该颜色重复出现
                    ans+=1
                    break
print(ans)

全部评论

相关推荐

点赞 评论 收藏
转发
1 收藏 评论
分享
牛客网
牛客企业服务