prithwiraj15's blog

By prithwiraj15, 4 months ago, In English

This problem came in their coding challenge. Can anyone solve it ?

Problem Statement

You are given a tree with n nodes and n-1 edges. The nodes are numbered from 1 to n. Each edge has a weight, either 1 or -1.

You need to count all pairs of nodes (u, v) such that:

  • Node u != Node v

  • There exists a node x in simple path between u and v such that u != v != x

  • Let F(a, b) = Sum of edge paths between Nodes a and b. Ensure that F(u, x) = F(v, x) = 0.

Constraints

1 <= n <= 1000000

Test Case

N = 8

Edges. (Format used :- Node x, Node y, Edge Weight)

(1, 3, 1) -> (Nodes 1. Node 3. Edge Weight 1)

(3, 2, -1)

(2, 6, 1)

(2, 5, -1)

(5, 4, 1)

(5, 7, -1)

(7, 8, 1)

Ans:- 2.

Explanation:-

Node u = 1, v = 4, x = 2. F(1, 4) = F(2, 4) = 0. Node x falls in the path between (u, v)

Node u = 6, v = 8, x = 5. F(6, 5) = F(8, 5) = 0. Node x falls in the path between (u, v)

Can anyone please help ?

  • Vote: I like it
  • 0
  • Vote: I do not like it