307636: CF1387A. Graph

Memory Limit:256 MB Time Limit:1 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

Graph

题意翻译

给定一张 $N$ 点 $M$ 边的无向图,节点的编号为 $1 \sim N$,每个点有一个**实数**点权 $v_i$。 每条边有一个边权 $1$ 或 $2$,边的边权等于这条边连接的两个点的点权和。 现给定每条边的边权,求一组点权绝对值和最小的方案,即最小化 $\sum_{i=1}^n |v_i|$。 多种方案输出任意一种,无解输出 `NO`。 $1 \leq N \leq 10^5,0 \leq M \leq 2 \times 10^5$

题目描述

You are given an undirected graph where each edge has one of two colors: black or red. Your task is to assign a real number to each node so that: - for each black edge the sum of values at its endpoints is $ 1 $ ; - for each red edge the sum of values at its endpoints is $ 2 $ ; - the sum of the absolute values of all assigned numbers is the smallest possible. Otherwise, if it is not possible, report that there is no feasible assignment of the numbers.

输入输出格式

输入格式


The first line contains two integers $ N $ ( $ 1 \leq N \leq 100\,000 $ ) and $ M $ ( $ 0 \leq M \leq 200\,000 $ ): the number of nodes and the number of edges, respectively. The nodes are numbered by consecutive integers: $ 1, 2, \ldots, N $ . The next $ M $ lines describe the edges. Each line contains three integers $ a $ , $ b $ and $ c $ denoting that there is an edge between nodes $ a $ and $ b $ ( $ 1 \leq a, b \leq N $ ) with color $ c $ ( $ 1 $ denotes black, $ 2 $ denotes red).

输出格式


If there is a solution, the first line should contain the word "YES" and the second line should contain $ N $ space-separated numbers. For each $ i $ ( $ 1 \le i \le N $ ), the $ i $ -th number should be the number assigned to the node $ i $ . Output should be such that: - the sum of the numbers at the endpoints of each edge differs from the precise value by less than $ 10^{-6} $ ; - the sum of the absolute values of all assigned numbers differs from the smallest possible by less than $ 10^{-6} $ . If there are several valid solutions, output any of them. If there is no solution, the only line should contain the word "NO". Scoring Subtasks: 1. (5 points) $ N \leq 5 $ , $ M \leq 14 $ 2. (12 points) $ N \leq 100 $ 3. (17 points) $ N \leq 1000 $ 4. (24 points) $ N \leq 10\,000 $ 5. (42 points) No further constraints

输入输出样例

输入样例 #1

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

输出样例 #1

YES
0.5 0.5 1.5 -0.5

输入样例 #2

2 1
1 2 1

输出样例 #2

YES
0.3 0.7

输入样例 #3

3 2
1 2 2
2 3 2

输出样例 #3

YES
0 2 0

输入样例 #4

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

输出样例 #4

NO

说明

Note that in the second example the solution is not unique.

Input

题意翻译

给定一张 $N$ 点 $M$ 边的无向图,节点的编号为 $1 \sim N$,每个点有一个**实数**点权 $v_i$。 每条边有一个边权 $1$ 或 $2$,边的边权等于这条边连接的两个点的点权和。 现给定每条边的边权,求一组点权绝对值和最小的方案,即最小化 $\sum_{i=1}^n |v_i|$。 多种方案输出任意一种,无解输出 `NO`。 $1 \leq N \leq 10^5,0 \leq M \leq 2 \times 10^5$

加入题单

算法标签: