题目描述
给定一张 N 个顶点 M 条边的无向图(顶点编号为 1,2,⋯,n),每条边上带有权值。所有权值都可以分解成 2a⋅3b 的形式。
现在有 q 个询问,每次询问给定四个参数 u、v、a 和 b,请你求出是否存在一条顶点 u 到 v 之间的路径,使得路径依次经过的边上的权值的最小公倍数为 2a⋅3b 。
注意:路径可以不是简单路径。
下面是一些可能有用的定义:
最小公倍数: k 个数 a1,a2,⋯,ak 的最小公倍数是能被每个 ai 整除的最小正整数。
路径:路径 P:P1,P2,…,Pk 是顶点序列,满足对于任意 1≤i<k ,节点 Pi 和 Pi+1 之间都有边相连。
简单路径:如果路径 P:P1,P2,…,Pk 中,对于任意 1≤s=t≤k 都有 Ps=Pt ,那么称路径为简单路径。
输入格式
输入文件的第一行包含两个整数 N 和 M ,分别代表图的顶点数和边数。
接下来 M 行,每行包含四个整数 u、v、a、b 代表一条顶点 u 和 v 之间、权值为 2a⋅3b 的边。
接下来一行包含一个整数 q ,代表询问数。
接下来 q 行,每行包含四个整数 u 、v 、a 和 b,代表一次询问。
询问内容请参见问题描述。
输出格式
对于每次询问,如果存在满足条件的路径,则输出一行 Yes
,否则输出一行 No
(注意:第一个字母大写,其余字母小写) 。
数据范围与提示
对于所有的数据,1≤n,q≤50000, 1≤m≤100000, 0≤a,b≤109。