#HK4903. 「POI2016 R1」水管比赛 Hydrocontest

「POI2016 R1」水管比赛 Hydrocontest

题目描述

题目译自 XXIII Olimpiada Informatyczna — I etap Hydrorozgrywka

Bajtazar 和 Bajtoni 的管道施工队中标了为下字节村铺设水管的工程。当地的路网由 nn 个路口通过 mm 条道路连接,任何两个路口都能通过路网连通。每条道路下都需要埋设水管。下字节村的所有道路均为双向,路口之间可双向通行。

为了让工作更有趣,Bajtazar 和 Bajtoni 决定玩个游戏。游戏开始时,两人的施工队站在同一个路口,之后始终一起行动。他们轮流操作,从 Bajtazar 开始。每轮,玩家选择一条从当前路口出发、尚未埋管的新道路。玩家的施工队在这条路下埋管,然后两队一起移动到道路另一端的路口。

无法行动的玩家输掉游戏,作为惩罚,他的施工队得埋设剩余道路的水管。Bajtazar 想知道,从哪些路口开始游戏,他能保证无论 Bajtoni 怎么行动都能赢。他请你帮忙列出这些路口。此外,他发现下字节村的路网有个有趣特性:从任意道路中点出发,不回头且不重复经过任何路口,只有一条路径能绕个圈回到起点。

输入格式

输入第一行包含两个整数 nnmm,分别表示路口数和道路数。路口编号从 11nn

接下来的 mm 行描述路网,每行两个整数 a,ba, b (1a,bn,ab)(1 \leq a, b \leq n, a \neq b),表示 aa 号和 bb 号路口间有一条道路。任意两路口间至多有一条道路。

输出格式

输出 nn 行,第 ii 行包含一个数字:若从 ii 号路口开始 Bajtazar 能保证获胜,输出 11;否则输出 22

6 7
1 2
2 3
3 1
3 4
4 5
5 6
6 3

1
1
1
2
1
2

附加样例

  1. n=9,m=12n=9, m=12,路网由四个圈组成:12311-2-3-114511-4-5-116711-6-7-118911-8-9-1
  2. n=998,m=999n=998, m=999,每对相邻路口 jjj+1j+1 (1j<n)(1 \leq j < n) 有道路,另有道路连接 11499499499499998998
  3. n=500000,m=500000n=500000, m=500000,路网形成一个大圈。

数据范围与提示

详细子任务附加限制及分值如下表所示。

子任务 附加限制 分值
11 3n,m203 \leq n, m \leq 20 2121
22 3n,m10003 \leq n, m \leq 1000 3939
33 3n,m5000003 \leq n, m \leq 500000 4040