1 条题解

  • 0
    @ 2022-7-12 16:13:52

    本题是求最优值问题。显然,如果 x 和 y 本身就认识,则答案是 0;否则,答案至少为 1。如果 x 和 y 通过 z 这一个人就间接认识,那么答案是 1,可以通过穷举 z 来实现;否则,答案至少为2。……如此做下去,一定能找到答案(最大为n-2)。这种算法叫作“宽度优先搜索”,简称“宽搜”,具体实现需要通过一个队列在实现过程中扩展到所有人。

    把 x 加入队列并设置为队头元素,设 q[x][1]=0,从队头开始进行宽搜,穷举邻接矩阵的第 x 行,看 x 认识谁(判断 a[x][j]=1),认识的人(j)全部依次入队,并且 q[j][1]++。如果出现了 y,则输出 q[f][1]-1,结束搜索;否则,取出队头元素继续宽搜。

    • 1

    信息

    ID
    528
    时间
    1000ms
    内存
    256MiB
    难度
    7
    标签
    递交数
    75
    已通过
    18
    上传者