问题 4891 --4.随缘游走

4891: 4.随缘游走

题目描述

  有一个包含 $n$ 个点和 $m$ 条边的无向图 G,其中点集为 $V$,边集为 $E$。边带权。
我们记一条 $v_1 \to v_c$ 的非简单路径为 $path(v_1,v_2,\ldots,v_{c-1},v_c)$,其中 $v_i$ 表示路径中第 $i$ 个经过的点的编号。

当一个非简单路径 $path(v_1,v_2,\ldots,v_{c-1},v_c)$ 满足以下两个条件时是合法的:
对于 $\forall i \in [1,c)$,都有 $v_i \in V$。
对于 $\forall i \in [1,c)$,都有 $(v_i,v_{i+1}) \in E$。
现在有 $Q$ 次询问,询问有三种,对于每次询问,你都需要求出一个值:
  1 S T k:给出一个起点 $S$ 和一个终点 $T$,请你求出:
$$\sum\limits_{|path(S, ..., T)| = k} \left(\bigotimes\limits_{i = 1}^k w(v_i, v_{i + 1})\right)$$
  2 S T k:给出一个起点 $S$ 和一个终点 $T$,请你求出:
$$\sum\limits_{|path(S, ..., T)| = k} \left(\bigodot\limits_{i = 1}^k w(v_i, v_{i + 1})\right)$$
 3 S T k:给出一个起点 $S$ 和一个终点 $T$,请你求出:
$$\sum\limits_{|path(S, ..., T)| = k} \left(\bigoplus\limits_{i = 1}^k w(v_i, v_{i + 1})\right)$$
其中 $|path(v_1,v_2,\ldots,v_{c-1},v_c)|=c-1$,即为该路径经过的边数;
$w(u,v)$ 表示从 $u$ 到 $v$ 的边的边权;
$\bigotimes$ 表示按位与;
$\bigodot$ 表示按位或;
$\bigoplus$ 表示按位异或。

简单地说,你需要求出 " 从 $S$ 到 $T$ 的所有经过边数恰好为 $k$ 的非简单路径的 按位与和 $/$ 按位或和 $/$ 按位异或和 的和 "。

答案对 $10^9+7$ 取模。

输入

第一行两个整数 $n,m$,表示图的点数与边数。
接下来 $m$ 行,每行三个整数 $u,v,w$,表示图中的一条边 $(u,v,w)$。
接下来一行一个整数 $Q$,表示询问次数。
接下来 $Q$ 行,每行四个整数 $\text{opt},S,T,k$,表示一次询问。

输出

共 $Q$ 行,每行一个整数,第 $i$ 行的整数表示第 $i$ 次询问的答案。

样例输入输出

输入#1 复制
4 6
1 2 1
1 3 1
1 4 4
2 4 5
3 4 1
2 3 4
3
1 1 3 2
2 1 3 2
3 1 3 2
输出#1 复制
0
10
10

提示


表中特殊性质一栏:
A:保证图为菊花图。
B:保证图为一条链。
C:保证对于所有的 $w$ 均相等。
对于 $100\%$ 的数据,$1 \leq n \leq 30$,$1 \leq m \leq \frac{n \ast (n - 1)}{2}$,$1 \leq u, v \leq n$,$1 \leq w \leq 10^9$,$1 \leq Q \leq 100$,$\text{opt} \in \{ 1, 2, 3 \}$,$1 \leq S, T \leq n$,$1 \leq k \leq 10^9$,保证无自环无重边。

请注意常数因子对程序效率带来的影响。

序号 标题 作者 发表时间 费用 订购数 操作