BITWISE OR WITH GRAPH

Nguồn: None

Cho đồ thị có \(n\) đỉnh và \(m\) cạnh, các đỉnh được đánh số từ 1 đến \(n\). Trên mỗi cạnh được gán một số nguyên không âm là trọng số của cạnh đó. Trọng số của một đường đi được tính bằng phép toán or (ký hiệu: or trong pascal, | trong C++), Nói cách khác, một đường đi qua các cạnh có trọng số lần lượt là \(m_{1},m_{2},\ldots,m_{k}\) thì trọng số của đường đi này là \(m_{1}\ or\ m_{2}\ or\ldots m_{k}\)

Cho đồ thị và 2 đỉnh \(s,\ t\), hãy tìm đường đi có trọng số nhỏ nhất từ \(s\) đến \(t\), nếu không tìm được đường đi thì in -1.

Dữ liệu vào:

+ Dòng đầu tiên ghi 2 số nguyên \(n,\ m\)

+ \(m\) dòng tiếp theo, mỗi dòng ghi 3 số nguyên \(u,\ v,\ c\ (1 \leq u,v \leq n)\) cho biết \(c\) là trọng số của cạnh \(u,\ v\)

+ Dòng cuối cùng ghi 2 số nguyên \(s,\ t\ (1 \leq s,t \leq n;s
eq t)\)

Kết quả: Một số nguyên duy nhất là kết quả bài toán.

Ví dụ:

Input output
3 4
1 2 1
1 2 1000
2 3 3
1 3 100
1 3
3

Giới hạn:

+ \(1 \leq n \leq 1000\)

+ \(1 \leq m \leq 10000\)

+ \(1 \leq c < 1024\)

Bạn cần đăng nhập để nộp bài

hpcode.edu.vn
Code tích cực
Trong 24h
  1. npk1605 (5/10)
  2. kurotiso (4/7)
  3. tuythoi213 (4/6)
Trong 7 ngày
  1. nguyenanhvu (40/60)
  2. khieuquan (35/59)
  3. ngokhang (27/55)
Trong 30 ngày
  1. quechi (85/105)
  2. dangphong3108 (79/125)
  3. kiennhientv (79/179)
Thống kê
AC/Sub: 97887/180710
Pascal: 17121
C++: 130348
Python: 33199
Lượt xem/tải tests: 38905

Lưu Hải Phong - 2020
[email protected]