『湖南省队集训』经典傻逼题

题目

问题描述

这是一道经典傻逼题,对经典题很熟悉的人也不要激动,希望大家不要傻逼。

考虑一张$n$个点的带权无向图,点的编号为$1$到$n$。对于图中的任意一个点集(可以为空或者全集),所有恰好有一个端点在这个点集中的边组成的集合被称为割。一个割的权值被定义为所有在这个割上的边的异或和

一开始这张图是空图,现在,考虑给这张无向图不断的加边,加入每条边之后,你都要求出当前权值最大的割的权值,注意加入的边永远都不会消失。

输入格式

从文件shabiti.in中读入数据。

输入的第一行包括一个数$id$表示数据编号,如第一组数据中的$id = 1$。注意样例数据中的$id = 0$。

接下来的第一行包括两个整数$n, m$表示图的点数和总共加的边。

接下来$m$行,每行三个正整数$x, y, w$表示在点$x$和点$y$之间加入一条权值为$w$的边。注意$x$和$y$可能相同,两条不同的边也可能连接了同一对点。

此外,$w$将以二进制形式从高位向低位给出,比如,$6 = 110_2$,因此如果边权为$6$,那么$w$将会是$110$。

输出格式

输出到shabiti.out中。

输出$m$行,按顺序输出每一条边加入之后权值最大的割的权值。

同样,你也要以二进制形式输出,形式和输入格式中描述的形式一样。

样例输入 1

0
3 6
1 2 1
1 2 1
3 3 111
1 3 101101
1 2 1011
2 3 111011

样例输出 1

1
0
0
101101
101101
110000

样例说明 1

前三条边加入之后的答案较为显然,考虑后三条边,加入第六条边之前,考虑点集$\{1,2\}$,它对应的割只有第四条边,因此答案就是第四条边的权值,考虑加入最后一条边以后的情况,此时点集$\{1,2\}$对应的割变成了第四条边和第六条边组成的集合,权值也发生了相应的改变。点集$\{2\}$对应的割是第五条边和第六条边组成的集合,可以证明这就是权值最大的割,权值为$1011_2 \oplus 111011_2 = 110000_2$。

样例输入输出 2

见下发的shabiti/shabiti1.inshabiti/shabiti1.ans

样例说明 2

这组数据满足最终形成的图中每个点的度数不超过$1$。

样例输入输出 3

见下发的shabiti/shabiti2.inshabiti/shabiti2.ans

数据规模和约定

设$l = \log_{2}w$。

数据点$n$的规模$m$的规模$l$的规模备注
$1$$n \leq 20$$m \leq 50$$l < 32$
$2$$n \leq 20$$m \leq 50$$l < 32$
$3$$n \leq 200$$m \leq 100$$l < 100$最终形成的图中每个点的度数不超过$1$,且没有自环。
$4$$n \leq500$$m \leq 250$$l < 1000$
$5$$n \leq500$$m \leq 250$$l < 1000$
$6$$n \leq 100$$m \leq 200$$l < 300$
$7$$n \leq 100$$m \leq 200$$l < 300$
$8$$n \leq 500$$m \leq 1000$$l < 1000$
$9$$n \leq 500$$m \leq 1000$$l < 1000$
$10$$n \leq 500$$m \leq 1000$$l < 1000$

对于所有数据,$1 \leq n \leq 500$,$1 \leq m \leq 1000$,$0 \leq l < 1000$,$1 \leq x, y \leq n$。

文章目录
  1. 1. 题目
    1. 1.1. 问题描述
    2. 1.2. 输入格式
    3. 1.3. 输出格式
    4. 1.4. 样例输入 1
    5. 1.5. 样例输出 1
    6. 1.6. 样例说明 1
    7. 1.7. 样例输入输出 2
    8. 1.8. 样例说明 2
    9. 1.9. 样例输入输出 3
    10. 1.10. 数据规模和约定
,