#P7816. 「Stoi2029」以父之名

    ID: 6702 远端评测题 2500ms 512MiB 尝试: 0 已通过: 0 难度: 6 上传者: 标签>Special JudgeO2优化构造圈和块树形结构图论图遍历搜索深度优先搜索DFS

「Stoi2029」以父之名

题目背景

以父之名判决
那感觉没有适合字汇
就像边笑边掉泪
凝视着完全的黑
阻挡悲剧蔓延的悲剧会让我沉醉
——《以父之名

题目描述

地狱里有 nn 个罪人在等待判决,编号为 11nn。罪人们之间有 mm 条罪的联系,编号为 11mm,每条联系 的值为 1122 且恰好连接两个罪人。

称一个罪人的自负度为他和其他所有罪人之间联系的值之和。两个罪人之间可能不止有一条联系,此时这些联系的值都应该被计算。由于这些罪人承受了太多的罪恶,他们变得不和谐。具体地,每个罪人的自负度都是奇数。

现在,神明将要对他们进行判决。判决的具体方式为:将每条联系都进行定向,使得这条联系所连接的两个罪人中的一个受到惩罚,另一个受到救赎,它们的值均为这条联系的值。

由于神明秉承父的仁慈,希望罪人们更加均等地接受惩罚和救赎,于是他规定判决后每个罪人所受到的惩罚和救赎值总和之差的绝对值必须恰好为 11

由于神明工作繁忙,因此他以父之名要求你为他找到一种判决的方法。由于父的指示不会有错,所以一定存在一种这样的方法。


题意简述

给定一个 nn 个点 mm 条边的无向图,边权均为 1122。保证每个点所相连的边权值之和均为奇数。你需要将这些边定向,使每个点的入边权值和与出边权值和之差的绝对值恰为 11。保证有解。输出任意一种方案。

输入格式

第一行两个正整数:n,mn,m,表示有 nn 个罪人和 mm 条罪的联系。

接下来 mm 行,第 i+1i+1 行为三个正整数:ui,vi,wiu_i,v_i,w_i,表示第 ii 条联系连接 uiu_iviv_i 且值为 wiw_i

输出格式

共一行 mm 个数字,第 ii 个数字为 00 表示使 uiu_i 受到惩罚,使 viv_i 受到救赎;为 11 表示使 viv_i 受到惩罚,使 uiu_i 受到救赎。

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

00100

提示

样例解释

定向后的图如下:

更多样例详见题目附件 trial_sample.zip


数据范围

本题采用捆绑测试。

  • 特殊性质 A:边权均为 11,且任意两点之间只存在一条简单路径,且没有重边。
  • 特殊性质 B:同一个点至多只有一条边权为 11 和一条边权为 22 的边相连。
Subtask 分值 1n1\le n \le 1m1\le m \le 特殊性质
11 77 1010 1515
22 2020 10310^3 3×1033\times10^3
33 3×1053 \times 10^5 A
44 B
55 3333 10610^6 3×1063 \times 10^6

对于 100%100\% 的数据,1ui,vin1061 \le u_i,v_i \le n \le 10^61m3×1061 \le m \le 3 \times 10^6wi{1,2}w_i \in \{1,2\}

在题目附件 trial_sample.zip 中:

  • trial_sample1.in 即为样例 #1。
  • trial_sample2.in 满足特殊性质 A。
  • trial_sample3.in 满足特殊性质 B。
  • trial_sample4.in 不满足特殊性质。

另外该目录下还有 checker.exe


提示

本题输入输出量较大,请使用较快的输入输出方式。

本题提供 Special Judge 源码checker.exe,供选手调试。Windows 下使用方法为:
命令行在目标文件夹输入指令:

checker.exe data.in data.out data.out

其中 data.in 是输入数据文件,data.out 是程序运行结果文件。观察评判结果即可。

  • Perfect answer. 表示答案正确。
  • Wrong answer on node x, and the difference is d. 表示答案错误,其中节点 xx 的入边权值和与出边权值和之差的绝对值为 dd 而不为 11
  • Invalid answer. 表示输出的字符串长度不正确或输出非法字符。

请务必保证输出格式正确,否则 Special Judge 可能会返回 Unknown Error 等不可预估的结果。