bzoj#P3793. 魔法

魔法

题目描述

一天,白神和他的伙伴喵喵一起走到了可以产生魔法的神奇世界。但是这个世界产生魔法有这样一个有趣的方法。在一个无向图,有 nn 个城镇,mm 条道路,并且每一条道路有一个权值(不超过 101810^{18})。每次从 11 号城镇出发,随意一条有限长度的路径,一条路可以经过多次,所经过的边将权值 xor 起来,若 xor 值不为 00,则算新产生一种魔法(一个 xor 值对应唯一的魔法)。注意:一条边经过几次,就要 xor 几次)。 喵喵觉得这样太没有意思了,就在想假如我删除一些边这个世界的魔法总数还会有多少呢?喵喵可不会一下删完,他会进行 QQ 次删边操作,每次只会删除一条边,他想知道每删除一条边,剩余的魔法种数有多少。

输入格式

第一行三个整数,分别表示 nn 个节点,mm 条边,之后删除 QQ 次边。

接下来 mm 行每一行表示 aabb 之间有一条权值为 uu 的边。

再接下来 QQ 行,每一行表示删除编号为 ii 的边。

输出格式

一共 Q+1Q+1 行,每行一个整数。

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

数据范围与约定

对于 100%100\% 的数据,保证该无向图不含重边、自环;保证不会有一条边被删除多次,即对于不同的 iijj,有 disidisjdis_i \ne dis_j;保证 n5×103n \le 5 \times 10^3m2×104m \le 2 \times 10^4Q2×104Q \le 2\times 10^4u1018u \le 10^{18}