Đếm số quần đảo

View as PDF

Submit solution

Points: 200.00 (partial)
Time limit: 1.0s
Memory limit: 1G
Input: stdin
Output: stdout

Author:
Problem type
Allowed languages
C, C++, GAS64, Pascal, Perl, PHP, Python, Sed, TCL, Text

Quốc đảo Danglan trên Sao Hoả có n ốc đảo được đánh số từ ~1~ đến ~n~, ốc đảo thứ ~i~ có số hiệu là một số nguyên dương ~a_i~. Quốc đảo có kế hoạch xây dựng các cây cầu nối giữa các ốc đảo với nhau như sau: Một cây cầu sẽ được xây dựng nối ốc đảo ~i~ với ốc đảo ~j~ nếu và chỉ nếu ~a_i~ & ~a_j~ = ~0~, với & là phép toán thao tác bit AND.

Phép toán thao tác bit AND là phép toán luận lý AND trên mỗi cặp bit tương ứng bằng cách nhân chúng lại với nhau, nếu cả hai bit ở vị trí được so sánh đều là ~1~ thì kết quả là ~1~, ngược lại thì kết quả sẽ là ~0~. (Kí hiệu phép toán AND trong Pascal là: and, trong C++ là &).

Ví dụ: ~3~ & ~5~=~1~ vì trong hệ nhị phân biểu diễn nhị phân của ~3~ = ~0011_2~ và ~5~ = ~0101_2~:

'' ~0011~ (số thập phân là 3)

& ~0101~ (số thập phân là 5)

= ~0001~ (số thập phân là 1).

Sau khi hoàn thành việc xây dựng các cây cầu, giữa hai ốc đảo nếu có đường đi đến với nhau (thông qua một hoặc một số cây cầu liên tiếp nhau) thì cùng thuộc một quần đảo.

Yêu cầu: Hãy xác định số lượng quần đảo trên quốc đảo Danglan sau khi hoàn thành việc xây dựng các cây cầu theo kế hoạch đã đề ra.

Dữ liệu vào có cấu trúc sau:

  • Dòng đầu tiên chứa hai số nguyên dương ~n~ và ~m~ ~(n~ ≤ ~2^m~ ) tương ứng là số ốc đảo và chiều dài nhị phân của các số hiệu;
  • Dòng thứ hai chứa ~n~ số nguyên ~a_1~,~a_2~,…,~a_n~ (~0~ ≤ ~a_i~ < ~2^m~ ) tương ứng là số hiệu của các ốc đảo dưới dạng thập phân. Dữ liệu đảm bảo các số hiệu này là phân biệt;

Các số trong tệp cách nhau một dấu cách.

Kết quả: Ghi ra một số nguyên duy nhất là số quần đảo của quốc đảo Dangland.

Ràng buộc:

  • Số test ứng với 30% số điểm của bài có: ~n≤1000~ và ~m≤20~;
  • Số test ứng với 30% số điểm của bài có: ~n~≤~2^m~ và ~m≤15~;
  • Số test còn lại ứng với 40% số điểm của bài có: ~n~≤~2^m~ và ~m≤20~.
Ví dụ:
INPUT 1
3 2
1 2 3
OUTPUT 1
2
INPUT 2
6 5
5 19 7 10 20 12
OUTPUT 2
3

Giải thích:


Comments

Please read the guidelines before commenting.


There are no comments at the moment.