An toàn mạng

Đề bài

Mô tả

Mạng máy tính của thành phố Metropolis gồm n máy chủ, mỗi máy chủ được gán một khoá mã hoá là một số nguyên trong khoảng [0,2k1]. Gọi ci là khoá của máy chủ thứ i. Ngoài ra có m cặp máy chủ được nối trực tiếp bằng một kênh truyền dữ liệu. Một kênh truyền được coi là an toàn nếu hai máy chủ ở hai đầu của nó có khoá khác nhau. Đảm bảo rằng tất cả m kênh truyền ban đầu đều an toàn.

Một loại virus mới đang lan rộng. Virus mang một số nguyên x chưa biết, 0x2k1. Khi virus lây sang máy chủ i, khoá của máy chủ đó bị thay đổi từ ci thành cix, trong đó là phép XOR theo bit.

Vì không biết virus mang số x nào, cũng không biết virus sẽ lây vào tập máy chủ nào, hãy đếm số cặp (A,x) thoả mãn:

  • A là một tập con (có thể rỗng) của tập máy chủ;
  • x là một số nguyên trong khoảng [0,2k1];
  • Sau khi virus mang số x lây vào đúng các máy chủ thuộc A (và không lây vào các máy chủ ngoài A), tất cả m kênh truyền vẫn an toàn.

In kết quả theo modulo 109+7.

Dữ liệu vào

  • Dòng đầu chứa ba số nguyên n, m, k (1n5·105; 0mmin(n(n1)/2,5·105); 0k60).
  • Dòng thứ hai chứa n số nguyên c1,c2,,cn (0ci2k1).
  • m dòng tiếp theo, mỗi dòng chứa hai số nguyên ui, vi (1ui,vin, uivi), mô tả một kênh truyền giữa hai máy chủ uivi. Mỗi cặp máy chủ xuất hiện không quá một lần.

Dữ liệu ra

Một số nguyên duy nhất — số cặp (A,x) thoả mãn, lấy theo modulo 109+7.

Ràng buộc

  • 1n5·105
  • 0mmin(n(n1)/2,5·105)
  • 0k60
  • 0ci2k1

Ví dụ

Input Output Giải thích
4 4 2
0 1 0 1
1 2
2 3
3 4
4 1
50 Với x{0,2,3}, virus có thể lây vào tập con bất kỳ trong 24=16 tập (vì các khoá XOR với x chung của hai đầu mỗi cạnh khác x). Với x=1 thì virus phải lây vào tất cả hoặc không máy chủ nào — chỉ 2 tập hợp lệ. Tổng cộng 16+2+16+16=50.
4 5 3
7 1 7 2
1 2
2 3
3 4
4 1
2 4
96 Đáp án là 96.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0