Quan hệ "có cảm tình với nhau" giữa hai ngời trong cộng đồng là quan hệ đối xứng, không bắc cầu theo nghĩa:
- Nếu A có cảm tình với B thì B có cảm tình với A.
- Nếu A có cảm tình với B và B có cảm tình với C cha chắc A đã có cảm tình với C.
Cho một tập hợp có n ngời (50<n<80), mỗi ngời đợc gán một số hiệu từ 1 đến n, hai ngời khác nhau phải có số hiệu khác nhau. Hãy tìm một dãy số hiệu ngời D1, D2,..., Dk sao cho từ dãy D1, D2, ..., Dk
này tách ra đợc thành hai dãy con A1, A2, ..., Ap và B1, B2, ..., Bq với các điều kiện: p + q = k + 2.
A1= B1=1 và Ap = Bq; Ai< Ai+1 với i<p và Bj<Bj+1 với j<q.
Ngời số hiệu Ai có cảm tình với ngời có số hiệu Ai+1 với mọi i<p, cũng vậy ngời có số hiệu Bj
có cảm tình với ngời có số hiệu Bj+1 với mọi j<q; Ai ạ Bj với i, j bất kỳ trừ hai điều kiện đã có: A1= B1=1, Ap = Bp.
Viết chơng trình:
1) Nhận dữ liệu từ File Text DATA1 đợc tổ chức nh sau: Dòng đầu tiên chứa số n (không cần kiểm tra điều kiện với n).
Với n-1 dòng còn lại giả thiết chỉ gồm các giá trị số:
- Dòng thứ hai trong File chứa số hiệu những ngời mà ngời 1 có cảm tình.
- Dòng thứ i trong file chứa số hiệu (không nhỏ thua i) những ngời mà ngời i - 1 có cảm tình, (trong n-1 dòng này bỏ qua những số hiệu vi phạm)
2) Tìm dãy số hiệu D1 D2 ....Dk có các tính chất trên với k lớn nhất có thể đợc, chỉ ra các dãy con A1, A2 ....Ap và B1, B2,....Bq.
301.
(Đề kiểm tra đội tuyển Tin học của Hội tin học Việt nam năm 1990)
Cho lới ô vuông kích thớc M x N (M x N ô vuông). Các đoạn thẳng nối giữa các mắt lới đợc đánh mũi tên theo hớng trái sang phải và dới lên trên. Gọi A, B là các đỉnh trái dới và phải trên của lới. G là tập hợp một số mắt lới đợc đánh dấu.
1) Ta gọi một đờng đi hợp lệ từ A đến B là đờng đi theo lới từ A đến B và không tự cắt (không nhất thiết theo hớng các mũi tên). Tính số đờng đi hợp lệ từ A đến B (phụ thuộc vào m, n).
2) Tìm đờng đi hợp lệ từ A đến B mà: a. Đi qua ít điểm của G nhất.
b. Đi qua nhiều điểm của G nhất.
(Chơng trình phải chỉ rõ chúng và minh họa trên màn hình). 3) Giả sử các mắt lới đều đợc đánh số thoả mãn các điều kiện sau: a. Đỉnh A đánh số 0, các đỉnh còn lại là các số tự nhiên.
b. Tất cả các số của lới là khác nhau từng đôi một. c. Với mọi bộ 3 số dạng (xem hình) ta đều có a = b + c.
Lới đợc đánh số thoả mãn các điều kiện trên gọi là lới chấp nhận đợc.
Giả sử Bm,n là số tại đỉnh B. Tìm giá trị nhỏ nhất có thể có của Bm,n sao cho lới chấp nhận đợc tồn tại. Giả sử giá trị này là Bm,n.
Với mỗi giá trị b>Bm,n, lập tất cả các lới chấp nhận đợc với đỉnh b (in các kết quả ra màn hình nếu có thể đợc).
4) Lập thuật toán và chơng trình tô màu các đỉnh của G bằng hai màu đỏ, xanh sao cho trên mỗi hàng ngang và hàng dọc thì số các điểm xanh và đỏ (nếu có sẽ hơn kém nhau không quá 1.
Thể hiện cách tô màu trên màn hình.