KHÔI PHỤC NGOẶC

Một phần của tài liệu 150 đề tin học (Trang 87 - 90)

Một dãy dấu ngoặc hợp lệ là một dãy các ký tự "(" và ")" được định nghĩa như sau: i. Dãy rỗng (không có ký tự nào) là một dãy dấu ngoặc hợp lệ

ii. Nếu A là một dãy dấu ngoặc hợp lệ thì (A) là dãy dấu ngoặc hợp lệ. Dấu ngoặc mở và dấu ngoặc đóng hai bên dãy A được gọi là tương ứng với nhau

iii. Nếu A và B là hai dãy dấu ngoặc hợp lệ thì AB là dãy dấu ngoặc hợp lệ.

Ví dụ: ((()))(())()() là một dãy dấu ngoặc hợp lệ. các dấu mở ngoặc ở các vị trí: 1, 2, 3, 7, 8, 11, 13 tương ứng lần lượt với các dấu đóng ngoặc ở các vị trí: 6, 5, 4, 10, 9, 12, 14.

Ban đầu có một dãy dấu ngoặc hợp lệ, người ta viết vào dưới mỗi dấu ngoặc mở một số là số dấu ngoặc (cảđóng và mở) nằm giữa dấu ngoặc mởđó và dấu ngoặc đóng tương ứng:

( ( ( ) ) ) ( ( ) ) ( ) ( )

4 2 0 2 0 0 0

Sau đó xoá đi dãy ngoặc.

Yêu cu: Cho biết dãy s còn li, hãy khôi phc li dãy ngoc ban đầu

Dữ liệu: Vào từ file văn bản BRACKETS.INP

• Dòng 1: Ghi số n là số phần tử của dãy số còn lại (n ≤ 10000) • Dòng 2: Ghi lần lượt các số trong dãy

Kết quả: Ghi ra file văn bản BRACKETS.OUT Gồm 1 dòng ghi dãy dấu ngoặc khôi phục được

Ví dụ:

BRACKETS.INP BRACKETS.OUT BRACKETS.INP BRACKETS.OUT 7 7

4 2 0 2 0 0 0

((()))(())()() 10

8 2 0 0 0 4 0 0 0 0

078. DÂY XÍCH

Một dây xích là một cây có tính chất: Tồn tại một đường đi sao cho mỗi đỉnh treo phải kề với đúng một đỉnh trên đường đi đó. Với mỗi dây xích, đường đi này không nhất thiết phải duy nhất.

1 2 3 4 10 9 6 5 11 12 8 13 7

Cho mt dây xích vi các nút được đánh s 1..n (2 ≤≤≤≤ n ≤≤≤≤ 10000). Hãy tìm cách gán cho mi đỉnh i mt nhãn Lab(i); 1 ≤≤≤≤ Lab(i) ≤≤≤≤ n sao cho các điu kin sau được tho mãn:

Hai đỉnh khác nhau có hai nhãn khác nhau

Không có hai cnh nào có cùng giá tr tuyt đối ca hiu các nút hai đầu mút

7 2 10 1 3 4 5 6 9 12 11 13 8

Dữ liệu: Vào từ file văn bản CHAIN.INP • Dòng 1: ghi số n

• n - 1 dòng tiếp theo, mỗi dòng ghi hai đầu mút của một cạnh thuộc xích

Kết quả: Ghi ra file văn bản CHAIN.OUT (Nếu có nhiều lời giải thì chỉ cần chọn một) • Một dòng n số, số thứ i là Lab(i) Ví dụ: CHAIN.INP CHAIN.OUT 13 1 2 1 5 1 6 1 9 1 10 2 7 2 11 2 3 7 2 10 1 6 5 8 11 4 3 9 12 13

079. PHÂN CÔNG

Có n thợ và n việc (n ≤ 200), các thợđược đánh số từ 1 tới n và các việc cũng được đánh số từ 1 tới n. Với thợ i và việc j nào đó thì có hai khả năng: Hoặc thợ i không làm được việc j, hoặc làm được với chi phí là cij. (cij là số tự nhiên ≤ 109).

Hãy phân công cho mi th làm đúng mt vic sao cho có th thc hin tt c các công vic vi tng chi phí ít nht có th.

Dữ liệu: Vào từ file văn bản ASSIGN.INP • Dòng 1: Ghi số n

• Các dòng tiếp, mỗi dòng ghi ba số i j cij cho ta thông tin: Thợ i làm được việc j với chi phí cij.

Kết quả: Ghi ra file văn bản ASSIGN.OUT

• Dòng 1: Ghi tổng chi phí thực hiện các công việc, nếu không tồn tại cách phân công thì dòng này ghi số -1.

• Nếu có phương án phân công, n dòng tiếp theo, dòng thứ i ghi số hiệu việc được phân cho thợ i.

Các s trên mt dòng ca Input File được ghi cách nhau ít nht mt du cách

Ví dụ:

ASSIGN.INP ASSIGN.OUT ASSIGN.INP ASSIGN.OUT 4 4 1 1 1 1 2 2 2 1 2 2 2 5 2 3 1 3 2 1 3 3 10 4 3 10 4 4 7 10 1 3 2 4 10 2 2 6 2 3 1 2 6 5 5 5 14 7 3 10 8 7 15 8 9 10 -1

080. DÂY CUNG

Trên mặt phẳng với hệ trục toạđộ Decattes vuông góc, cho đường tròn có tâm O là gốc toạđộ, bán kính R. Trên đường tròn O xét n điểm xanh và n điểm đỏđều có hoành độ nguyên, tung độ khác 0. Các điểm được đánh số thứ tự từ 1 đến 2n và nằm ở các vị trí hoàn toàn phân biệt.

Theo giả thiết ở trên, thông tin vềđiểm thứ i có thể cho bởi bộ ba (Ci, Xi, Di) với: • Ký tự Ci∈ {R, B}; Ci = R có nghĩa là điểm đỏ, Ci = B có nghĩa là điểm xanh • Số nguyên Xi là hoành độđiểm đó.

• Số nguyên Di ∈ {-1, 1}; Di = -1 tức là tung độ âm (nằm dưới trục hoành), Di = 1 tức là tung độ dương (nằm trên trục hoành).

Dễ thấy cách xác định điểm nói trên là đúng đắn.

Yêu cu: Hãy xác định n dây cung ca đường tròn tho mãn:

Một phần của tài liệu 150 đề tin học (Trang 87 - 90)

Tải bản đầy đủ (PDF)

(165 trang)