Bài 1: Các phân
tử sinh học được cấu tạo từ 4 nuclêôtit cơ bản ký hiệu bởi các chữ
cái A, T, G, X. Mỗi gen di truyền được tạo thành bởi một chuỗi các
nuclêôtit với độ dài được tính bằng số lượng các nuclêôtit. Ví dụ
AXXTTGAT là một gen có độ dài 8.
Trong một di truyền khảo sát, giáo sư Altein phát hiện một gen lạ gồm n nuclêôtit được xếp trên một vòng tròn. Ngay lập tức, giáo sư Altein dự định tiến hành so sánh gen lạ này với một số gen mẫu đang lưu trữ nhằm tìm hiểu xem mẫu gen này có gần gũi với loại gen mẫu nào đã được biết. Trong sinh học để đo độ khác biệt giữa hai mẫu gen người ta thường tính khoảng cách hamming giữa chúng. Khoảng cách Hamming giữa hai gen cùng độ dài được định nghĩa là số lượng vị trí mà tại đó hai gen chứa các nuclêôtit khác nhau. Ví dụ, hai gen AGGTT và TGATT có khoảng cách Hamming bằng 2 do 2 nuclêôtit ở vị trí 1 và 3 của chúng là khác nhau. Do các gen mẫu được sử dụng đều có độ dài m (m <= n) và có cấu trúc thẳng, trong khi gen lạ lại có độ dài n và có cấu trúc vòng nên giáo sư Altien đã định nghĩa khoảng cách Hamming giữa một gen mẫu và gen lạ là số nhỏ nhất trong số các khoảng cách Hamming giữa gen mẫu và những đoạn gen gồm m nuclêôtit liên tiếp theo chiều kim đồng hồ trong gen lạ.
Yêu cầu : Cho k gen mẫu, hãy xác định gen mẫu với khoảng cách Hamming đến gen lạ là nhỏ nhất và đưa ra khoảng cách tìm được.
Dữ liệu :
- Dòng nhất chứa 3 số n, m, k (m <= n <= 1000, k <= 100)
- Dòng hai chứa xâu độ dài n là dãy các nuclêôtit của gen lạ được liệt kê theo chiều kim đồng hồ bắt đầu tại một vị trí nào đó.
- Dòng thứ i trong số k dòng tiếp theo chứa xâu độ dài m biễu diễn gen mẫu thứ i.
Kết quả: Ghi ra một số nguyên là khoản cách Hamming nhỏ nhất tìm được.
Ví dụ:
Input --------- Output
7 3 2 ---------- 1
GTAAXXT
GAT
TTT
Trong một di truyền khảo sát, giáo sư Altein phát hiện một gen lạ gồm n nuclêôtit được xếp trên một vòng tròn. Ngay lập tức, giáo sư Altein dự định tiến hành so sánh gen lạ này với một số gen mẫu đang lưu trữ nhằm tìm hiểu xem mẫu gen này có gần gũi với loại gen mẫu nào đã được biết. Trong sinh học để đo độ khác biệt giữa hai mẫu gen người ta thường tính khoảng cách hamming giữa chúng. Khoảng cách Hamming giữa hai gen cùng độ dài được định nghĩa là số lượng vị trí mà tại đó hai gen chứa các nuclêôtit khác nhau. Ví dụ, hai gen AGGTT và TGATT có khoảng cách Hamming bằng 2 do 2 nuclêôtit ở vị trí 1 và 3 của chúng là khác nhau. Do các gen mẫu được sử dụng đều có độ dài m (m <= n) và có cấu trúc thẳng, trong khi gen lạ lại có độ dài n và có cấu trúc vòng nên giáo sư Altien đã định nghĩa khoảng cách Hamming giữa một gen mẫu và gen lạ là số nhỏ nhất trong số các khoảng cách Hamming giữa gen mẫu và những đoạn gen gồm m nuclêôtit liên tiếp theo chiều kim đồng hồ trong gen lạ.
Yêu cầu : Cho k gen mẫu, hãy xác định gen mẫu với khoảng cách Hamming đến gen lạ là nhỏ nhất và đưa ra khoảng cách tìm được.
Dữ liệu :
- Dòng nhất chứa 3 số n, m, k (m <= n <= 1000, k <= 100)
- Dòng hai chứa xâu độ dài n là dãy các nuclêôtit của gen lạ được liệt kê theo chiều kim đồng hồ bắt đầu tại một vị trí nào đó.
- Dòng thứ i trong số k dòng tiếp theo chứa xâu độ dài m biễu diễn gen mẫu thứ i.
Kết quả: Ghi ra một số nguyên là khoản cách Hamming nhỏ nhất tìm được.
Ví dụ:
Input --------- Output
7 3 2 ---------- 1
GTAAXXT
GAT
TTT
Bài 2: Công ty du lịch tư nhân Travel chuyên tổ chức các
tour du lịch nội địa. Có n thành phố nằm trong phạm vi khai thác của
công ty. Các thành phố được đánh số từ 1 tới n. Có m cặp thành phố
có đoạn đường hai chiều trực tiếp nối chúng. Đề đáp ứng yêu cầu
của khác hàng trong các kỳ nghỉ ngắn hạn, công ty chỉ khai thác các
tour du lịch vòng quanh 4 thành phố theo các đoạn đường trực tiếp nối
chúng. Để chắc chắn có thể khai thác những tour như vậy, công ty tiến
hành khảo sát xem liệu có 4 thành phố nào tạo thành 1 hành trình
khép kín xuất phát từ 1 thành phố và đi qua 3 thành phố còn lại,
mỗi thành phố đúng 1 lần và quay về thành phố xuất phát hay không.
Yêu cầu : Hãy giúp công ty kiểm tra xem có tồn tại hành trình nào như vậy không.
Dữ liệu :
- Dòng thứ nhất chứa 2 số n, m (n <= 10000, m <= 200000)
- Dòng thứ i trong m dòng tiếp theo chứa 2 số chỉ 2 thành phố có đoạn đường trực tiếp nối chúng.
Kết quả : Ghi ra 4 số nguyên dương theo thứ tự chỉ 4 thành phố trên một hành trình tìm được hoặc ghi số -1 nếu câu trả lời là phủ định.
Ví dụ :
Input -------------- Output
5 6 ---------------- 4 5 2 3
1 2
1 5
2 3
2 5
3 4
4 5
Yêu cầu : Hãy giúp công ty kiểm tra xem có tồn tại hành trình nào như vậy không.
Dữ liệu :
- Dòng thứ nhất chứa 2 số n, m (n <= 10000, m <= 200000)
- Dòng thứ i trong m dòng tiếp theo chứa 2 số chỉ 2 thành phố có đoạn đường trực tiếp nối chúng.
Kết quả : Ghi ra 4 số nguyên dương theo thứ tự chỉ 4 thành phố trên một hành trình tìm được hoặc ghi số -1 nếu câu trả lời là phủ định.
Ví dụ :
Input -------------- Output
5 6 ---------------- 4 5 2 3
1 2
1 5
2 3
2 5
3 4
4 5
Bài 3: Sau khi thực hiện quy hoạch của Bộ Giao Thông,
sơ đồ giao thông của thành phố H gồm n tuyến đường ngang và n tuyến
đường dọc cắt nhau tạo thành một lưới ô vuông với n * n nút giao
thông. Các nút giao thông được gắn tọa độ theo hàng từ 1 đến n, từ
trên xuống dưới và theo cột từ 1 đến n, từ trái qua phải. Ban chỉ
đạo an toàn giao thông quyết định điều n cảnh sát giao thông đến các
nút giao thông làm nhiệm vụ. Ban đầu mỗi cảnh sát được phân công đứng
trên một nút của một tuyến đường ngang khác nhau. Đến giờ cao điểm,
xuất hiện ùn tắc tại các tuyến đường dọc không có cảnh sát giao
thông. Để sớm giải quyết tình trạng này, ban chỉ đạo an toàn giao
thông quyết định điều động một số cảnh sát giao thông ở một số nút,
từ nút hiện tại sang một nút khác cùng hàng ngang để đảm bảo mỗi
tuyến đường dọc đều có mặt của cảnh sát giao thông.
Yêu cầu : Biết rằng cảnh sát ở hàng ngang thứ i cần t[i] đơn vị thời gian để di chuyển qua 1 cạnh của lưới ô vuông, hãy giúp Ban chỉ đạo an toàn giao thông tìm cách điều động các cảnh sát thoả mãn yêu cầu đặt ra sao cho việc điều động được hoàn thành tại thời điểm sớm nhất. Giả thiết là các cảnh sát được điều động đồng thới thực hiện việc di chuyển đến vị trí mới tại thời điểm 0.
Dữ liệu:
- Dòng nhất chứa một số nguyên dương n (n <= 10000)
- Dòng thứ i trong số n dòng tiếp theo chứa hai số nguyên dương c[i], t[i] (t[i] <= 10000) tương ứng là tọa độ và thời gian để di chuyển qua 1 cạnh của lưới ô vuông của cảnh sát đứng trên tuyến đường ngang thứ i.
Kết quả: Ghi ra một số nguyên duy nhất là thời điểm sớm nhất tìm được.
Ví dụ:
Input -------------- Output
5 ------------------ 10
5 10
3 10
3 20
2 9
2 15
Yêu cầu : Biết rằng cảnh sát ở hàng ngang thứ i cần t[i] đơn vị thời gian để di chuyển qua 1 cạnh của lưới ô vuông, hãy giúp Ban chỉ đạo an toàn giao thông tìm cách điều động các cảnh sát thoả mãn yêu cầu đặt ra sao cho việc điều động được hoàn thành tại thời điểm sớm nhất. Giả thiết là các cảnh sát được điều động đồng thới thực hiện việc di chuyển đến vị trí mới tại thời điểm 0.
Dữ liệu:
- Dòng nhất chứa một số nguyên dương n (n <= 10000)
- Dòng thứ i trong số n dòng tiếp theo chứa hai số nguyên dương c[i], t[i] (t[i] <= 10000) tương ứng là tọa độ và thời gian để di chuyển qua 1 cạnh của lưới ô vuông của cảnh sát đứng trên tuyến đường ngang thứ i.
Kết quả: Ghi ra một số nguyên duy nhất là thời điểm sớm nhất tìm được.
Ví dụ:
Input -------------- Output
5 ------------------ 10
5 10
3 10
3 20
2 9
2 15
Bài 4: Bản vanxơ Fibonacci là một bản nhạc mà giai
điệu của nó bắt nguồn từ một trong những dãy số nổi tiếng nhất
của lý thuyết số - dãy số Fibonacci. Hai số đầu tiên của dãy là số
1 và số 2, các số tiếp theo được xác định bằng tổng của hai số liên
tiếp ngay trước nó trong dãy.
Bản vanxơ Fibonacci thu được bằng việc chuyển dãy số Fibonacci thành dãy các nột nhạc theo qui tắc chuyển một số nguyên dương thành nốt nhạc sau đây:
- Số 1 tương ứng với nốt Đô(C)
- Số 2 tương ứng với nốt Rê(D)
- Số 3 tương ứng với nốt Mi(E)
- Số 4 tương ứng với nốt Fa(F)
- Số 5 tương ứng với nốt Sol(G)
- Số 6 tương ứng với nốt La(A)
- Số 7 tương ứng với nốt Si(B)
- Số 8 tương ứng với nốt Đô(C)
- Số 9 tương ứng với nốt Rê(D)
và cứ tiếp tục như vậy. Ví dụ dãy số gồm 6 số Fibonacci đầu tiên 1, 2, 3, 5, 8 và 13 tương ứng với dãy các nốt nhạc C, D, E, G, C, A.
Để xây dựng nhịp điệu vanxơ người ta thường đi tìm các đoạn nhạc có tính chu kỳ trong bản vanxơ Fibonacci. Đoạn nhạc được gọi là có tính chu kỳ nếu như có thể chia nó ra thành k >= 2 đoạn giống hệt nhau. Ví dụ, đoạn nhạc GCAGCA là đoạn nhạc có tính chu kỳ, vì nó gồm hai đoạn giống hệt nhau GCA.
Yêu cầu : Cho trước hai số nguyên dương u, v (u < v) hãy xác định độ dài đoạn nhạc dài nhất có tính chu kỳ của bản nhạc gồm dãy các nốt nhạc của bản vanxơ Fibonacci bắt đầu từ vị trí u kết thúc ở vị trí v.
Dữ liệu:
- Dòng thứ nhất chứa số nguyên dương k là số lượng test (k <= 100)
- Dòng thứ i trong số k dòng tiếp theo chứa hai số nguyên dương u, v (u < v < 10^9) là vị trí bắt đầu và kết thúc của một bản nhạc.
Kết quả: Ghi ra k dòng, dòng thứ i chứa một số nguyên là độ dài đoạn nhạc tìm được tương ứng với test thứ i. Nếu không tìm được đoạn nào thì ghi ra số -1.
Ví dụ
Input ------------------ Output
2 ---------------------- -1
1 3--------------------- 2
4 10
Bản vanxơ Fibonacci thu được bằng việc chuyển dãy số Fibonacci thành dãy các nột nhạc theo qui tắc chuyển một số nguyên dương thành nốt nhạc sau đây:
- Số 1 tương ứng với nốt Đô(C)
- Số 2 tương ứng với nốt Rê(D)
- Số 3 tương ứng với nốt Mi(E)
- Số 4 tương ứng với nốt Fa(F)
- Số 5 tương ứng với nốt Sol(G)
- Số 6 tương ứng với nốt La(A)
- Số 7 tương ứng với nốt Si(B)
- Số 8 tương ứng với nốt Đô(C)
- Số 9 tương ứng với nốt Rê(D)
và cứ tiếp tục như vậy. Ví dụ dãy số gồm 6 số Fibonacci đầu tiên 1, 2, 3, 5, 8 và 13 tương ứng với dãy các nốt nhạc C, D, E, G, C, A.
Để xây dựng nhịp điệu vanxơ người ta thường đi tìm các đoạn nhạc có tính chu kỳ trong bản vanxơ Fibonacci. Đoạn nhạc được gọi là có tính chu kỳ nếu như có thể chia nó ra thành k >= 2 đoạn giống hệt nhau. Ví dụ, đoạn nhạc GCAGCA là đoạn nhạc có tính chu kỳ, vì nó gồm hai đoạn giống hệt nhau GCA.
Yêu cầu : Cho trước hai số nguyên dương u, v (u < v) hãy xác định độ dài đoạn nhạc dài nhất có tính chu kỳ của bản nhạc gồm dãy các nốt nhạc của bản vanxơ Fibonacci bắt đầu từ vị trí u kết thúc ở vị trí v.
Dữ liệu:
- Dòng thứ nhất chứa số nguyên dương k là số lượng test (k <= 100)
- Dòng thứ i trong số k dòng tiếp theo chứa hai số nguyên dương u, v (u < v < 10^9) là vị trí bắt đầu và kết thúc của một bản nhạc.
Kết quả: Ghi ra k dòng, dòng thứ i chứa một số nguyên là độ dài đoạn nhạc tìm được tương ứng với test thứ i. Nếu không tìm được đoạn nào thì ghi ra số -1.
Ví dụ
Input ------------------ Output
2 ---------------------- -1
1 3--------------------- 2
4 10
Bài 5: Cuộc thi vòng loại Robocon năm nay có chủ đề
"Gặp gỡ". Các Robocon sẽ tranh tài trên một lưới ô vuông n x n. Các
hàng của lưới được đánh số từ 1 -> n từ trên xuống, các cột của lưới được
đánh số từ 1 -> n từ trái qua. Trên k ô vuông của lưới có đặt chướng ngại
vật. Ở phần thi Robot tự động, mỗi đội sẽ phải sử dụng đồng thời hai con Robot.
Tại thời điểm xuất phát, Robot thứ nhất được đặt ở ô (1,1), mỗi bước chỉ được
phép di chuyển sang ô kề cạnh bên phải hoặc xuống ô kề cạnh bên dưới hoặc xuống
ô kề đỉnh phía dưới bên phải. Robot thứ hai được đặt tại ô (1,n), mỗi bước chỉ
được phép di chuyển sang ô kề cạnh bên trái hoặc xuống ô kề cạnh bên dưới hoặc
xuống ô kề đỉnh phía dưới bên trái. Bắt đầu từ thời điểm xuất phát được tính là
0, hai Robot phải di chuyển liên tục theo qui tắc đã nêu, Thời gian di chuyển
từ một ô sang ô kề tiếp được tính là 1 giây. Nhiệm vụ của đội chơi là phải lập
trình điều khiển hai Robot xuất phát cùng lúc, di chuyển tránh chướng ngoại vật
để gặp nhau tại một ô không có chướng ngoại vật. Hai Robot gặp nhau càng sớm
đội chơi càng được nhiều điểm. Lưới ô vuông được thiết kế để đảm bảo là luôn có
cách đi để 2 Robot gặp nhau.
Yêu cầu : Hãy tìm cách điều khiển để cho 2 con robot gặp nhau ở thời điểm sớm nhất
Dữ liệu :
- Dòng đầu chứa 2 số n, k (n < 500, k < 10000)
- k dòng tiếp theo chứa tọa độ của các chướng ngoại vật.
Kết quả : Ghi ra 1 số nguyên duy nhất chỉ thời điểm sớm nhất tìm được
Ví dụ
Input ------- Output
5 6 ----------3
2 2
1 4
2 3
3 5
4 2
Yêu cầu : Hãy tìm cách điều khiển để cho 2 con robot gặp nhau ở thời điểm sớm nhất
Dữ liệu :
- Dòng đầu chứa 2 số n, k (n < 500, k < 10000)
- k dòng tiếp theo chứa tọa độ của các chướng ngoại vật.
Kết quả : Ghi ra 1 số nguyên duy nhất chỉ thời điểm sớm nhất tìm được
Ví dụ
Input ------- Output
5 6 ----------3
2 2
1 4
2 3
3 5
4 2
Bài 6: Một nhóm n bạn đi tập văn nghệ về khuya. Cả nhóm chỉ
có một chiếc đèn pin và phải qua một cây cầu gồm m đoạn, các đoạn được đánh số
từ 1 đến m. Còn vị trí n bạn đang đứng là đoạn thứ 0 và đàu cầu bên kia là vị
trí m+1. Cây cầu đã cũ, do đó có một số đoạn của cầu đã hỏng và không thể đi
vào được, hơn nữa cầu chỉ chịu được sức nặng của không quá 2 người. Để qua cầu
an toàn các bạn phải tổ chức qua cầu theo cách thức sau : Mỗi lượt chỉ có 2
người cầm đèn pin để cùng nhau qua cầu và không được đi vào những vị trí đoạn cầu
bị hỏng. Sau khi hai người qua đến đầu cầu bên kia thì những người đã qua cầu
phải cử một người đem đèn pin trở lại đầu cầu bên này để các bạn khác tiếp tục
qua cầu ... Mỗi đơn vị thời gian, bạn thứ i có thể bước không quá r[i] đoạn,
nghĩa là nếu bạn i đang ở đoạn thứ s của cây cầu thì bạn ấy có thể di chuyển
vào một trong các đoạn thứ s+1, s+2, ... , s+r[i] nếu đoạn đó không bị hỏng.
Việc thực hiện một bước đi đòi hỏi 1 đơn vị thời gian. Do đó có thể có người
qua cầu nhanh hơn, có người qua chậm hơn. Nếu hai bạn đi cùng nhau qua cầu thì
họ phải di chuyển qua cầu với thời gian của bạn chậm hơn. Vì đã quá khuya nên
cả nhóm bàn nhau tìm cách qua cầu sớm nhất có thể.
Yêu cầu : Cho biết vị trí các đoạn cầu bị hỏng và khả năng di chuyển của từng bạn, hãy tính thời gian ngắn nhất để n bạn qua được cầu. Giả thiết rằng luôn có cách để cả nhóm vượt qua cầu.
Dữ liệu :
- Dòng nhất chứa 2 số n và m (n < 10000, m < 100000);
- Dòng thứ hai chứa n số nguyên dương r[1], r[2], ... , r[n] (r[i] < 100)
- Dòng thứ ba chứa một xâu gồm m ký tự '0' hoặc '1' mô tả trạng thái của cây cầu. Ký tự '0' là đoạn không bị hỏng, ký tự '1' là đoạn đó bị hỏng.
Kết quả : Ghi ra một số nguyên duy nhất chỉ thời gian ngắn nhất để n bạn qua cầu.
Ví dụ
Input ------- Output
3 5 ----------8
2 2 4
00100
Yêu cầu : Cho biết vị trí các đoạn cầu bị hỏng và khả năng di chuyển của từng bạn, hãy tính thời gian ngắn nhất để n bạn qua được cầu. Giả thiết rằng luôn có cách để cả nhóm vượt qua cầu.
Dữ liệu :
- Dòng nhất chứa 2 số n và m (n < 10000, m < 100000);
- Dòng thứ hai chứa n số nguyên dương r[1], r[2], ... , r[n] (r[i] < 100)
- Dòng thứ ba chứa một xâu gồm m ký tự '0' hoặc '1' mô tả trạng thái của cây cầu. Ký tự '0' là đoạn không bị hỏng, ký tự '1' là đoạn đó bị hỏng.
Kết quả : Ghi ra một số nguyên duy nhất chỉ thời gian ngắn nhất để n bạn qua cầu.
Ví dụ
Input ------- Output
3 5 ----------8
2 2 4
00100
Không có nhận xét nào:
Đăng nhận xét