P8250 交友问题

原题链接

暴力做法

每次询问,遍历点 \(u\) 的相邻节点,打上标记,然后遍历 \(v\) 的相邻节点,查询被标记的点的数量为 \(k\),答案为 \(deg[u]+deg[v]-k\),其中 \(deg[u]\) 表示节点 \(u\) 的度数

最坏时间复杂度为 \(O(q\cdot n)\)

优化

对于一组询问,由于我们需要遍历两个点的子节点,对于包含同一个节点的询问,我们放在一起处理

但是这样的最坏时间复杂度仍然是 \(q\cdot n\),只要每次询问的 \(u\) 都不同就会超时

根据暴力做法,每组查询的答案为 \(deg[u]+deg[u]-k\),而两个节点的 \(k\) 是一样的,无论其顺序

因此,

posted @ 2024-08-06 13:56  纯粹的  阅读(14)  评论(0)    收藏  举报