您的位置:首页 > 其它

牛客练习赛14D bitset最短路

2018-04-01 18:51 239 查看
链接:https://www.nowcoder.com/acm/contest/82/E
来源:牛客网

题目描述

有一个n个点的无向图,有m次查询,每次查询给出一些(xi,yi)
令dist(x,y)表示x和y点在图中最短距离,dist(x,x)=0,如果x,y不连通则dist(x,y) = inf
每次查询图中有多少个点v与至少一个这次询问给出的(xi,yi)满足dist(v,xi)<=yi

输入描述:

第一行三个数表示n,m,q
之后m行每行两个数x,y表示有一条x与y之间的边,边权为1
之后q次询问,每个询问先给你一个数a
之后一行2a个数,第2i-1个数xi和第2i个数yi表示一个二元组(xi,yi) 

输出描述:

输出q行,每行一个数表示这次询
4000
问的答案
示例1

输入

5 6 6
2 3
1 3
2 5
1 3
3 2
2 5
1
3 1
1
1 1
1
1 4
1
5 2
1
1 4
2
1 0 5 1

输出

3
2
4
3
4
3

备注:

对于100%的数据,n <= 1000 , m <= 100000 , q <=
100000
a的和<= 2100000
题解:定义bitset<N>a[v][dis]为距离点v,距离小于dis的1-N点分布情况。然后由于边权都为1,对于每个点O(N)BFS处理出其到其他点的最短距离。然后O(N^3 / W)处理下。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: