Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 104 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
104
Dung lượng
1,22 MB
Nội dung
x 001 TÍNH TOÁN SONG SONG .3 002 BẢNG SỐ 003 CARGO 004 DÃY CON 005 XÂU FIBINACCI 006 VÒNG SỐ NGUYÊN TỐ 007 ĐÔI BẠN 008 CỬA SỔ VĂN BẢN 10 009 VÒNG TRÒN CON 11 010 BỐ TRÍ PHÒNG HỌP .12 011 MUA VÉ TÀU HOẢ 13 012 XIN CHỮ KÝ 15 013 LẮC NẠM KIM CƯƠNG 16 014 RẢI SỎI 17 015 ĐIỆP VIÊN .18 016 KHOẢNG CÁCH GIỮA HAI XÂU 19 017 XẾP LẠI BẢNG SỐ 20 018 THĂM KHU TRIỂN LÃM 21 019 DÒ MÌN 23 020 XẾP LẠI DÃY SỐ 24 021 CO DÃY BÁT PHÂN 25 022 TUYẾN BAY 26 023 MÔ PHỎNG CÁC PHÉP TOÁN .27 024 DÃY CON CỦA DÃY NHỊ PHÂN 28 025 TỔNG CÁC CHỮ SỐ 29 026 ĐƯỜNG ĐI NHIỀU ĐIỂM NHẤT 30 027 KẾ HOẠCH THUÊ NHÂN CÔNG 31 028 DÃY CÁC HÌNH CHỮ NHẬT 32 029 SƠN CỘT 33 030 CẮT VẢI 34 031 CHIA KẸO .35 032 BẢNG QUAN HỆ 36 033 ĐONG NƯỚC 37 034 TRẢ TIỀN 38 035 HOÁN VỊ CHỮ CÁI 39 036 DỰ TIỆC BÀN TRÒN .40 037 TRÁO BÀI .41 038 ĐỐI XỨNG HOÁ .42 039 MẠNG MÁY TÍNH 43 040 LẬT ĐÔ MI NÔ .44 041 SỐ NHỊ PHÂN LỚN NHẤT 45 042 SƠN CÁC HÌNH CHỮ NHẬT 46 043 PHÂN HOẠCH TAM GIÁC 47 044 CÁC THÀNH PHẦN LIÊN THÔNG MẠNH 48 045 MÃ GRAY 49 046 DỰ ÁN XÂY CẦU 50 047 BẢO TỒN ĐỘNG VẬT HOANG DÃ .51 048 PHÁ TƯỜNG 52 049 TRUYỀN TIN TRÊN MẠNG 53 050 HÌNH VUÔNG CỰC ĐẠI .54 051 ĐOÀN XE QUA CẦU .55 052 SỐ LƯỢNG 56 053 THÁM HIỂM LÒNG ĐẤT 57 054 THỨ TỰ TỪ ĐIỂN 58 055 DÃY LỆCH 59 056 RÚT GỌN DÃY SỐ 60 057 BUÔN TIỀN .61 058 DÃY NGOẶC 62 059 THẰNG BỜM VÀ PHÚ ÔNG 63 060 SỐ THẬP PHÂN 64 061 DANH SÁCH VÒNG 65 062 TÍNH DIỆN TÍCH 66 063 THANG MÁY 67 064 TRỌNG SỐ XÂU .68 065 PHỐ MAY MẮN 69 066 TÍN HIỆU GIAO THÔNG .70 067 PHÂN NHÓM 71 068 TUA DU LỊCH RẺ NHẤT .72 069 DU LỊCH NHIỀU TUA NHẤT 73 070 PHÂN CÔNG 74 071 NHẮN TIN .75 072 CÁC SỐ ĐIỆN THOẠI 76 073 GIÁ TRỊ LỚN NHẤT 77 074 NÚT GIAO THÔNG TRỌNG ĐIỂM 78 075 TẬP KẾT 79 076 MỜI KHÁCH DỰ TIỆC 80 077 KHÔI PHỤC NGOẶC .81 078 DÂY XÍCH .82 079 PHÂN CÔNG 83 080 DÂY CUNG .84 081 MÊ CUNG 85 082 DU LỊCH 86 083 SỬA ĐƯỜNG 87 084 ĐI THI 88 085 MÈO KIỂU ÚC 89 086 THÀNH PHỐ TRÊN SAO HOẢ .90 087 RÔ BỐT XÂY NHÀ 91 088 TƯ DUY KIỂU ÚC 92 089 8-3, TẶNG HOA KIỂU ÚC 10test 93 090 MÃ HOÁ BURROWS WHEELERhard 94 091 BAO LỒI 95 092 GIAI THỪA .96 093 PHỦ SÓNG 97 094 DÃY NGHỊCH THẾ 98 095 MUA HÀNG 99 096 XÂU CON CHUNG DÀI NHẤT 100 097 DÃY CON NGẮN NHẤT 101 098 BIẾN ĐỔI DÃY SỐ .102 099 GIÁ TRỊ NHỎ NHẤT 103 100 NỐI DÂY .104 001 TÍNH TOÁN SONG SONG Biểu thức đủ dãy ký tự gồm biến ký hiệu chữ thường tiếng Anh: a z, phép toán cộng ký hiệu +, nhân ký hiệu * dấu ngoặc (,) Được định nghĩa sau: i) Mỗi biến a,b, ,z biểu thức đủ ii) Nếu X Y biểu thức đủ (X+Y) (X*Y) biểu thức đủ iii) Những biểu thức không xây dựng theo nguyên tắc không biểu thức đủ VD: Theo cách định nghĩa (a+(b+(c+d))) ((a+b)+(c*d)) biểu thức đủ Cho biết thời gian tính phép + P, thời gian tính phép * Q, người ta định nghĩa thời gian tính toán biểu thức đủ sau: • Nếu biểu thức đủ gồm biến (a z) thời gian tính toán • Nếu X Y biểu thức đủ; thời gian tính X TX thời gian tính Y TY thời gian tính (X+Y) max(TX,TY)+P thời gian tính (X*Y) max(TX,TY)+Q Từ biểu thức đủ người ta biến đổi biểu thức tương đương luật: • Giao hoán: (X+Y) ⇔ (Y+X); (X*Y) ⇔ (Y*X) • Kết hợp: (X+(Y+Z)) ⇔ ((X+Y)+Z); (X*(Y*Z)) ⇔ ((X*Y)*Z) Yêu cầu: Cho trước biểu thức đủ E dạng xâu ký tự viết chương trình: Tìm thời gian tính toán biểu thức E Hãy biến đổi biểu thức E thành biểu thức E' tương đương với cho thời gian tính E' Dữ liệu vào đặt file văn PO.INP sau: • Dòng thứ ghi số P, Q cách dấu cách (P,Q≤ 100) • Tiếp theo số dòng, dòng ghi biểu thức đủ Kết đặt file văn PO.OUT sau: Với biểu thức E file PO.INP ghi file PO.OUT dòng • Dòng thứ nhất: Ghi thời gian tính toán E • Dòng thứ hai: Ghi biểu thức E' • Dòng thứ ba: Ghi thời gian tính toán E' Chú ý: Để cho gọn, biểu thức đủ input/output file viết mà không cần đến cặp dấu ngoặc cùng, liệu vào coi đắn không cần kiểm tra Ví dụ: PO.INP 1 a+(a+(a+(a+(a+(a+(a+a)))))) (((a+(b+(c+d)))*e)*f) (((((a*b)*c)*d)+e)+(f*g)) PO.OUT ((a+a)+(a+a))+((a+a)+(a+a)) (e*f)*((a+b)+(c+d)) ((a*b)*(c*d))+(e+(f*g)) 3 002 BẢNG SỐ Cho bảng hình chữ nhật kích thước M x N với M, N nguyên dương M, N ≤ 50 Hình chữ nhật chia thành M x N ô vuông với kích thước đơn vị đường song song với cạnh, ô vuông [i, j] ghi số nguyên A[i, j] (2 ≤ A[i, j] ≤ 50) Từ mảng A ta lập mảng B mà B[i, j] xây dựng sau: Biểu diễn số A[i, j] thành tổng số nguyên tố với ràng buộc: biểu diễn có nhiều số nguyên tố xuất hai lần Trong cách biểu diễn, chọn biểu diễn nhiều hạng tử B[i, j] số số hạng biểu diễn kể bội (nếu có) Ví dụ: Nếu A[i, j] = 10 = + + B[i, j] = 3; Nếu A[i, j] = 12 = + + + B[i, j] = 4; Chú ý: Không biểu diễn A[i, j] = 10 = + + + + để có B[i, j] = không thoả mãn ràng buộc a) Dữ liệu vào cho Text file INP.B1 đó: • Dòng đầu ghi hai số M, N • M dòng sau, dòng thứ i ghi N phần tử dòng i bảng A: A[i, 1], A[i, 2], , A[i, N] hai phần tử liên tiếp cách dấu trống b) Kết ghi Text file OUT.B1: Giá trị bảng B, dòng bảng ghi dòng file, hai phần tử liên tiếp cách dấu trống c) Hãy tìm hình chữ nhật lớn tạo ô mang giá trị bảng B Ghi tiếp file OUT.B1 dòng gồm số là: diện tích lớn tìm được, toạ độ trái phải hình chữ nhật có diện tích lớn 003 CARGO Bản đồ kho hàng hình chữ nhật kích thước mxn chia thành ô vuông đơn vị (m hàng, n cột: hàng đánh số từ xuống dưới, cột đánh số từ trái qua phải) Trên ô đồ có số ký hiệu: • Các ký hiệu # đánh dấu ô có kiện hàng xếp sẵn, • Một ký hiệu *: Đánh dấu ô có xe đẩy • Một ký hiệu $: Đánh dấu ô chứa kiện hàng cần xếp • Một ký hiệu @: Đánh dấu vị trí ô mà cần phải xếp kiện hàng B vào ô • Các ký hiệu dấu chấm ".": Cho biết ô trống Cần phải dùng xe đẩy * để đẩy kiện hàng $ đến vị trí @ cho trình di chuyển đẩy hàng, không chạm vào kiện hàng xếp sẵn (Xe đẩy di chuyển sang ô chung cạnh với ô đứng) Nếu có nhiều phương án phương án cho xe đẩy phải di chuyển qua bước Các hướng di chuyển hình # # # # # # # # # @ # # # # N W E # # # # # * $ S Dữ liệu: Vào từ file văn CARGO.INP • Dòng 1: Ghi hai số nguyên dương m, n cách dấu cách (m, n ≤ 80) • m dòng tiếp theo, dòng thứ i ghi đủ n ký hiệu hàng thứ i đồ theo thứ tự từ trái qua phải Các ký hiệu ghi liền Kết quả: Ghi file văn CARGO.OUT • Dòng 1: Ghi số bước di chuyển xe đẩy để thực mục đích yêu cầu, phương án khả thi dòng ghi số -1 • Dòng 2: Nếu có phương án khả thi dòng ghi ký tự liền thể hướng di chuyển xe đẩy R (East, West, South, North) Các chữ thường (e,w,s,n) thể bước di chuyển không đẩy hàng, chữ in hoa (E,W,S,N) thể bước di chuyển có đẩy hàng Ví dụ: CARGO.INP 8 ######## # @ ### #.#####* $ CARGO.OUT 23 sswwwwwwNNNwnEseNwnEEEE CARGO.INP @ ##.###.# # ##$###.# * CARGO.OUT 22 eeNNNssseeeennnnwwwWWW 004 DÃY CON Cho dãy gồm n ( n ≤ 1000) số nguyên dương A1, A2, , An số nguyên dương k (k ≤ 50) Hãy tìm dãy gồm nhiều phần tử dãy cho cho tổng phần tử dãy chia hết cho k Dữ liệu vào: file văn DAY.INP • Dòng chứa hai số n, k ghi cách dấu trống • Các dòng chứa số A 1, A2, , An ghi theo thứ tự cách dấu trống xuống dòng (CR-LF) Kết quả: ghi file văn DAY.OUT • Dòng ghi m số phần tử dãy tìm • Các dòng ghi dãy m số phần tử dãy cho có mặt dãy tìm Các số ghi cách dấu trắng dấu xuống dòng Ví dụ: DAY.INP 10 3 12 11 15 DAY.OUT 10 005 XÂU FIBINACCI Xét dãy xâu F1, F2, F3, , FN, đó: F1 = 'A' F2 = 'B' FK+1 = FK + FK-1 (K ≥ 2) Ví dụ: F1 = 'A' F2 = 'B' F3 = 'BA' F4 = 'BAB' F5 = 'BABBA' F6 = 'BABBABAB' F7 = 'BABBABABBABBA' F8 = 'BABBABABBABBABABBABAB' F9 = 'BABBABABBABBABABBABABBABBABABBABBA' Cho xâu S độ dài không 25, bao gồm ký tự 'A' 'B' Hãy xác định số lần xuất xâu S xâu FN, N ≤ 35 Chú ý: hai lần xuất S FN không thiết phải xâu rời hoàn toàn Dữ liệu: vào từ file văn FIBISTR.INP, bao gồm nhiều dòng, dòng có dạng N S Giữa N S có dấu cách Dữ liệu vào chuẩn, không cần kiểm tra Kết quả: Đưa file văn FIBISTR.OUT, dòng liệu ứng với dòng kết Ví dụ: FIBISTR.INP A AB BABBAB FIBISTR.OUT 006 VÒNG SỐ NGUYÊN TỐ Một vòng tròn chứa 2n vòng tròn nhỏ (Xem hình vẽ) Các vòng tròn nhỏ đánh số từ đến n theo chiều kim đồng hồ Cần điền số tự nhiên từ đến 2n số vào vòng tròn nhỏ cho tổng hai số hai vòng tròn nhỏ liên tiếp số nguyên tố Số điền vòng tròn nhỏ số 1 Dữ liệu: Vào từ file văn CIRCLE.INP chứa số nguyên dương n (1 < n < 10) Kết quả: Ghi file văn CIRCLE.OUT: • Dòng ghi số lượng cách điền số tìm (k) • Dòng thứ i số k dòng ghi số vòng tròn nhỏ vòng tròn nhỏ đọc theo thứ tự vòng tròn nhỏ Ví dụ: CIRCLE.INP CIRCLE.OUT 6 CIRCLE.INP CIRCLE.OUT 8 4 8 7 2 007 ĐÔI BẠN Trước Tuấn Mai hai bạn lớp hai bạn học khác trường Cứ sáng, hai từ nhà tới trường theo đường thời gian (có thể có nhiều đường thời gian nhất) Nhưng hôm nay, hai bạn muốn gặp để bàn việc họp lớp cũ nhân ngày 20-11 Cho biết sơ đồ giao thông thành phố gồm N nút giao thông đánh số từ đến N M tuyến đường phố (mỗi đường phố nối nút giao thông) Vị trí nhà Mai Tuấn trường hai bạn nằm nút giao thông Cần xác định xem Mai Tuấn có cách thoả mãn yêu cầu nêu trên, đồng thời họ lại gặp nút giao thông đường tới trường hay không ? (Ta nói Tuấn Mai gặp nút giao thông họ đến nút giao thông thời điểm) Nếu có nhiều phương án phương án để Mai Tuấn gặp sớm Dữ liệu vào đặt tệp FRIEND.INP: • Dòng chứa số nguyên dương N, M (1 ≤ N ≤ 100); • Dòng chứa số nguyên dương Ha, Sa, Hb, Sb số hiệu nút giao thông tương ứng với: Nhà Tuấn, trường Tuấn, nhà Mai, trường Mai • Dòng thứ i số M dòng chứa số nguyên dương A, B, T Trong A & B hai đầu tuyến đường phố i Còn T thời gian (tính giây ≤ 1000) cần thiết để Tuấn (hoặc Mai) từ A đến B từ B đến A Giả thiết sơ đồ giao thông thành phố đảm bảo để từ nút giao thông đến tất nút lại Kết : Ghi tệp văn FRIEND.OUT • Dòng 1: Ghi từ YES hay NO tuỳ theo có phương án giúp cho hai bạn gặp hay không Trong trường hợp có phương án: ♦ Dòng 2: Ghi thời gian để Tuấn tới trường ♦ Dòng 3: Ghi nút giao thông theo thứ tự Tuấn qua ♦ Dòng 4: Ghi thời gian để Mai tới trường ♦ Dòng 5: Ghi nút giao thông theo thứ tự Mai qua ♦ Dòng 6: Ghi số hiệu nút giao thông mà hai bạn gặp ♦ Dòng 7: Thời gian sớm tính giây kể từ sáng mà hai bạn gặp Các số dòng Input/Output file ghi cách dấu cách Ví dụ : Với sơ đồ giao thông sau: (N=6,M=7, Ha=1, Sa=6, Hb=2, Sb=5) Dòng FRIEND.INP 10 10 5 15 20 15 FRIEND.OUT YES 25 30 10 10 10 15 5 20 15 008 CỬA SỔ VĂN BẢN Xét văn T gồm N ký tự (N ≤ 1000000, N không cho trước) văn P gồm M ký tự (0 < M ≤ 100) Cửa sổ độ dài W đoạn văn gồm W ký tự liên tiếp T (M < W ≤ 1000) Nói cửa sổ W chứa mẫu P tồn cách xoá số ký tự liên tiếp W để nhận P Hai cửa sổ T gọi khác chúng vị trí khác T Hãy xác định số cửa sổ khác văn T chứa P Dữ liệu: • File văn WINDOWP.INP ♦ Dòng đầu chứa hai số nguyên W, M ♦ Dòng thứ hai chứa M ký tự văn P; • File WINDOWT.TXT chứa văn T Kết quả: Đưa file WINDOW.OUT số nguyên xác định số cửa sổ tìm theo yêu cầu Lưu ý: Đa số trường hợp, file WINDOWT.TXT Text file, có nghĩa chứa ký tự khoảng #0 #255 (file of Char) Như tính CR(#13) LF(#10) Ví dụ: WINDOWP.INP is WINDOWT.TXT This is a sample text for the first task on the contest WINDOW.OUT 10 086 THÀNH PHỐ TRÊN SAO HOẢ Đầu kỷ 21, người ta thành lập dự án xây dựng thành phố Hoả để kỷ 22 người sống sinh hoạt Giả sử kỷ 22, phương tiện giao thông chủ yếu phương tiện giao thông công cộng nên để lại hai địa điểm thành phố, người ta yên tâm chọn đường ngắn mà không sợ bị trễ kẹt xe Khi mô hình thành phố chuyển lên Internet, có nhiều ý kiến phàn nàn tính hợp lý nó, đặc biệt, tất ý kiến cho hệ thống đường phố nhiều, làm tăng chi phí xây dựng bảo trì Hãy bỏ số đường dự án xây dựng thành phố, thoả mãn: • Nếu hai địa điểm dự án ban đầu có đường sửa đổi không làm ảnh hưởng tới độ dài đường ngắn hai địa điểm • Tổng độ dài đường phố giữ lại ngắn tối tiểu Dữ liệu: Vào từ file văn CITY.INP, chứa đồ dự án • Dòng thứ nhất: Ghi số địa điểm n số đường phố m (Giữa hai địa điểm có nhiều đường phố nối chúng); n ≤ 200; ≤ m ≤ n * (n - 1) / • m dòng tiếp theo, dòng ghi ba số nguyên dương u, v, c: cho biết có đường hai chiều nối hai địa điểm u, v độ dài đường c Kết quả: Ghi file văn CITY.OUT, chứa kết sau sửa đổi • Dòng thứ ghi hai số k, d Ở k số đường phố lại d tổng độ dài đường phố lại • k dòng tiếp theo, dòng ghi hai số nguyên dương p, q: cho biết cần phải giữ lại đường nối địa điểm p với địa điểm q Các số dòng Input / Output File ghi cách dấu cách Ví dụ: CITY.INP 10 12 1 7 8 6 10 10 CITY.OUT 20 6 9 10 1 2 8 10 90 087 RÔ BỐT XÂY NHÀ Có số Rô-bốt xây nhà mảnh đất hình vuông, mảnh đất chia thành lưới ô vuông đơn vị kích thước nxn Vì Rô-bốt lập trình xây nhà máy móc, nên hai nhà Rô-bốt xây nên có kích thước hình dạng đáy giống hệt (Có thể đặt chồng khít lên qua phép dời hình), hai nhà hai Rô-bốt khác xây nên có ô khác Khi công trình hoàn thành, nhà xây hoàn toàn tách biệt (không có hai nhà chung ô, chung tường, chung góc tường) Bản đồ khu đất chụp ảnh mã hoá dạng ma trận vuông A kích thước nxn, a ij = cho biết ô (i, j) mảnh đất thuộc nhà aij = cho biết ô (i, j) mảnh đất để trống 1 1 1 1 1 0 0 1 0 0 1 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 1 Vấn đề đặt có đồ khu nhà tay, xác định số rô bốt tham gia xây nhà rõ rô bốt xây nhà Dữ liệu: Vào từ file văn HOUSES.INP • Dòng 1: Ghi số nguyên dương n (n ≤ 100) • n dòng tiếp theo, dòng thứ i ghi n số, số thứ j aij Kết quả: Ghi file văn HOUSES.OUT • Dòng 1: Ghi số rô-bốt tham gia xây nhà (k) • n dòng tiếp theo, dòng thứ i ghi n số, số thứ j b ij Ở đây, aij = bij = 0, aij = bij số hiệu rô bốt xây nhà chứa ô (i, j) Các rô-bốt đánh số từ đến k theo thứ tự tuỳ thích Các số dòng Input/Output file ghi cách dấu cách Ví dụ: HOUSES.INP 1 1 0 1 1 0 0 0 0 0 0 0 1 1 0 0 1 0 1 1 1 0 0 0 0 0 0 0 0 1 0 0 1 HOUSES.OUT 1 0 2 1 0 0 0 0 0 0 0 3 0 0 1 0 1 1 0 0 0 0 0 0 0 0 2 0 0 3 91 088 TƯ DUY KIỂU ÚC Một phần mềm nhỏ người phân tích thiết kế chia làm n công đoạn giao cho hai lập trình viên thực Mỗi lập trình viên viết đoạn trình giao cách tuần tự, tiến hành song song với lập trình viên lại (Bởi phong cách lập trình yêu cầu tuân thủ tuyệt đối thiết kế ban đầu, không bắt người làm theo ý làm ảnh hưởng tới tiến độ) Trong hai lập trình viên, có người chuyên lập trình PASCAL người chuyên lập trình C+ + Điều không gây khó khăn nhiều họ dịch đoạn trình dạng thư viện liên kết sau cần lắp ráp lại xong Tuy nhiên, có công đoạn mà lập trình viên PASCAL viết nhanh có công đoạn khác viết chậm lập trình viên C++ Yêu cầu: Cho biết thời gian dự kiến để lập trình viên PASCAL viết đoạn trình thứ i p i phút, thời gian dự kiến để lập trình viên C++ viết đoạn trình thứ j c j phút Hãy phân công đoạn cho người viết để thời gian hoàn thành phần mềm nhanh Ràng buộc: n, pi, cj (1 ≤ i, j ≤ n) số nguyên dương không 100 Dữ liệu: Vào từ file văn SOFTWARE.INP • Dòng 1: Chứa số n • Các dòng tiếp theo, chứa số từ p1 đến pn từ c1 đến cn theo thứ tự Kết quả: Ghi file văn SOFTWARE.OUT • Dòng 1: Ghi thời gian cần để hoàn thành hết n công đoạn • Dòng 2: Ghi số hiệu công đoạn giao cho lập trình viên PASCAL thực • Dòng 3: Ghi số hiệu công đoạn giao cho lập trình viên C++ thực Các số dòng Input/Output file ghi cách dấu cách Ví dụ: SOFTWARE.INP 10 100 30 50 50 80 100 30 40 40 60 90 SOFTWARE.OUT 130 92 089 8-3, TẶNG HOA KIỂU ÚC 10test Nhân ngày - 3, bạn nam lớp muốn tặng hoa cho bạn nữ mà sở thích bạn nữ kỳ quặc đến mức có máy tính hiểu Chẳng hạn bạn nữ cho bó hoa tặng, có hoa hồng phải có hoa cúc, có hoa cúc phải có hoa phăng, mà có hoa phăng lại phải có hoa hồng Và đem tặng cô ta bó hoa không ưng ý không tặng hậu có máy tính biết Yêu cầu: Hãy chọn bó hoa gồm loại hoa mà phù hợp với sở thích bạn nữ khó tính Dữ liệu: Vào từ file văn FLOWERS.INP • Dòng 1: Ghi số n số lượng loại hoa (1 < n < 200) • Các dòng tiếp theo, dòng ghi hai số u v cho biết: Nếu tặng loại hoa u phải tặng loại hoa v Kết quả: Ghi file văn FLOWERS.OUT • Dòng 1: Ghi số nguyên dương k số loại hoa chọn • Dòng 2: Ghi số hiệu k loại hoa chọn Các số dòng Input / Output file ghi cách dấu cách Ví dụ: FLOWERS.INP 12 2 6 12 8 9 12 10 11 11 10 12 11 FLOWERS.OUT 10 11 12 10 12 11 Về nhà: Cho biết giá tiền loại hoa, chọn bó hoa rẻ tiền nhất!!! 93 090 MÃ HOÁ BURROWS WHEELERhard Cho từ W độ dài n, người ta có cách mã hoá sau: Ví dụ với từ BANANA Bước 1: Xét n hoán vị vòng quanh W: BANANA ANANAB NANABA ANABAN NABANA ABANAN Bước 2: Sắp xếp n hoán vị vòng quanh theo thứ tự từ điển: ABANAN ANABAN ANANAB BANANA (*) NABANA NANABA Bước 3: Gọi k vị trí từ ban đầu dãy hoán vị vòng quanh sau xếp (ở k 4) Lấy hoán vị vòng quanh (theo thứ tự sau xếp theo thứ tự từ điển) ký tự cuối ghép thành từ W' (ở W' = 'NNBAAA') Ta gọi cặp (W', k) mã công khai từ W Yêu cầu 1: Viết chương trình đọc file văn ENCODE.INP gồm nhiều dòng, dòng chứa từ Tương ứng với từ W dòng, mã hoá ghi vào file văn ENCODE.OUT hai dòng mã công khai từ đó: dòng ghi từ W', dòng ghi số k Yêu cầu 2: Viết chương trình khác đọc file văn DECODE.INP gồm nhiều cặp dòng: Cứ hai dòng liên tiếp chứa mã công khai: dòng chứa từ W' dòng ghi số k Tương ứng với cặp dòng đó, giải mã ghi vào file văn DECODE.OUT dòng chứa từ W từ giải mã Hai yêu cầu phải thực độc lập hai file chương trình khác Ràng buộc liệu: Các từ cho khác rỗng, gồm chữ in thường có độ dài không 10000 Ví dụ: ENCODE.INP qua gi ma to to nhat ENCODE.OUT uaq ig ma to to hnta DECODE.INP xin utah rnag uaq dta DECODE.OUT xin thua rang qua dat 94 091 BAO LỒI Trên mặt phẳng với hệ toạ độ Decattes vuông góc, cho n điểm không đồng thời thẳng hàng Điểm thứ i có toạ độ (xi, yi) (Số n toạ độ xi, yi số nguyên: ≤ n ≤ 1000; -300 ≤ xi ≤ 300;-200 ≤ yi ≤ 200) Hãy tìm đa giác lồi có diện tích nhỏ mà miền đóng giới hạn biên đa giác chứa tất điểm cho Dữ liệu: Vào từ file văn BOUND.INP • Dòng 1: Chứa số n • n dòng tiếp theo, dòng thứ i ghi hai số xi, yi Kết quả: Ghi file văn BOUND.OUT • Dòng 1: Ghi số m số đỉnh đa giác • m dòng tiếp theo, dòng ghi hai số nguyên theo thứ tự hoành độ tung độ đỉnh đa giác Các đỉnh đa giác không phép có ba điểm thẳng hàng chúng phải liệt kê theo thứ tự lập thành đa giác Vẽ hình mô tả kết tìm hình đồ hoạ Các số dòng Input / Output file ghi cách dấu cách Ví dụ: BOUND.INP 10 -1 1 -3 -3 4 -1 -2 -1 BOUND.OUT -3 -3 -2 -1 -1 95 092 GIAI THỪA Giai thừa số tự nhiên k, ký hiệu k! định nghĩa quy nạp sau: • 0! = • k! = (k - 1)!.k (∀k ≥ 1) Vấn đề đặt cho trước hai số tự nhiên m, n (1 ≤ m ≤ n≤ 106) Hãy tìm hai số tự nhiên a b để với số tự nhiên k ( [a, b] k! có không m chữ số không nhiều n chữ số Những số tự nhiên khác nằm đoạn [a, b] tính chất Dữ liệu: Vào từ file văn FDIGIT.INP gồm dòng chứa hai số m, n cách dấu cách Kết quả: Ghi file văn FDIGIT.OUT gồm dòng ghi hai số a, b cách dấu cách Trong trường hợp số k thoả mãn yêu cầu đề ghi hai giá trị a > b Ví dụ: FDIGIT.INP FDIGIT.OUT FDIGIT.INP 12 12 FDIGIT.OUT 15 14 FDIGIT.INP FDIGIT.OUT 12 96 093 PHỦ SÓNG Dự kiến xây dựng mạng lưới phát thanh, truyền hình địa phương có đài phát n trạm tiếp sóng đánh số từ tới n (n ≤ 1000) Trạm thứ i xây dựng toạ độ (x i, yi) (Các toạ độ số thực, -10000 ≤ xi, yi ≤ 10000) Để đảm bảo tính trung thực nguồn tin, trạm tiếp sóng nhận tín hiệu trực tiếp từ đài phát Và có nghĩa để phát sóng đến tất trạm thu, bán kính phủ sóng đài phát phải đủ lớn để phủ hết trạm tiếp sóng (Giả sử vùng phủ sóng hình tròn có tâm đài phát) Yêu cầu: Hãy tìm vị trí đặt đài phát cho khoảng cách từ trạm xa tới đài phát ngắn Cho biết bán kính phủ sóng phương án tìm tối thiểu phải Dữ liệu: Vào từ file văn TELECOM.INP • Dòng 1: Chứa số n • n dòng tiếp theo, dòng thứ i chứa hai số xi, yi cách dấu cách Kết quả: Ghi file văn TELECOM.OUT Ghi ba số thực x, y, r Ở (x, y) toạ độ đặt đài phát r bán kính phủ sóng đài phát (Đài phát đặt trùng toạ độ với trạm thu đó) Các số thực phải lấy tới chữ số sau dấu chấm thập phân phải ghi cách dấu cách dấu xuống dòng Ví dụ TELECOM.INP 0 200 300 200 200 200 200 100 300 300 100 100 TELECOM.OUT 121.428571 135.714286 182.107840 97 094 DÃY NGHỊCH THẾ Cho x = (x1, x2, , xn) hoán vị dãy số (1, 2, , n) Dãy t = (t1, t2, , tn) gọi dãy nghịch dãy hoán vị x xây dựng sau: ti := số phần tử đứng trước giá trị i mà lớn i dãy x (1 ≤ i ≤ n) Ví dụ: Với n = • Dãy x = (3, 2, 1, 6, 4, 5) dãy nghịch (2, 1, 0, 1, 1, 0) • Dãy x = (1, 2, 3, 4, 5, 6) dãy nghịch (0, 0, 0, 0, 0, 0) • Dãy x = (6, 5, 4, 3, 2, 1) dãy nghịch (5, 4, 3, 2, 1, 0) Vấn đề đặt cho trước dãy t, cho biết dãy hoán vị x nhận t làm dãy nghịch Dữ liệu: Vào từ file văn RECOVER.INP • Dòng 1: Chứa số nguyên dương n (n ≤ 5000) • Dòng 2: Chứa số t1, t2, , tn theo thứ tự cách dấu cách Kết quả: Ghi file văn RECOVER.OUT Chỉ gồm dòng ghi số x1, x2, , xn cách dấu cách theo thứ tự Dữ liệu vào cho luôn đắn để tìm nghiệm Ví dụ: RECOVER.INP 1 RECOVER.OUT 98 095 MUA HÀNG Một công ty muốn mua m máy tính Sau lấy thông tin n cửa hàng (1 ≤ n ≤ 10000), người ta biết cửa hàng thứ i có bán a i máy tính với giá máy tính b i (ai, bi số nguyên dương: ≤ 100; bi ≤ 2000) Giả sử cửa hàng có đủ máy để bán cho công ty Hãy tìm cách mua rẻ Dữ liệu: Vào từ file văn BUY.INP • Dòng 1: Chứa hai số m, n cách dấu cách • n dòng tiếp theo, dòng thứ i chứa hai số ai, bi cách dấu cách Kết quả: Ghi file văn BUY.OUT • Dòng 1: Ghi tổng số tiền phải trả • n dòng tiếp theo, dòng thứ i ghi số máy tính mua cửa hàng thứ i Ví dụ: BUY.INP 22 30 10 10 20 BUY.OUT 168 10 99 096 XÂU CON CHUNG DÀI NHẤT Xâu ký tự X gọi xâu xâu ký tự Y ta xoá số ký tự xâu Y để xâu X Cho biết hai xâu ký tự A B, tìm xâu ký tự C có độ dài lớn A B Dữ liệu: Vào từ file văn STR.INP • Dòng 1: chứa xâu A • Dòng 2: chứa xâu B Kết quả: Ghi file văn STR.OUT • Chỉ gồm dòng ghi xâu C tìm Ví dụ: STR.INP abc1def2ghi3 abcdefghi123 STR.OUT abcdefghi3 100 097 DÃY CON NGẮN NHẤT Cho số nguyên dương n ≤ 1000 n số tự nhiên a1, a2, , an (∀i: ≤ 10000) Yêu cầu: Cho số nguyên dương m ≤ 10000, cho biết dãy dãy a có tổng m chứa phần tử Dữ liệu: Vào từ file văn SUBSEQ.INP • Dòng 1: Chứa hai số n, m • Dòng 2: Chứa n số a1, a2, , an theo thứ tự Kết quả: Ghi file văn SUBSEQ.OUT • Dòng 1: Ghi số k số phần tử dãy chọn được, không tồn dãy có tổng m ghi số -1 • Nếu có phương án chọn dãy con, dòng ghi số k phần tử chọn (ghi theo thứ tự tuỳ thích) Các số dòng Input/Output file ghi cách dấu cách Ví dụ: SUBSEQ.INP 10 220 10 30 50 70 90 20 40 60 80 100 SUBSEQ.OUT 101 098 BIẾN ĐỔI DÃY SỐ Cho dãy số nguyên dương a = (a1, a2, , an) (1 ≤ n ≤ 100; với ∀i: ≤ ≤ 100) Xét hai loại phép biến đổi: • Phép biến đổi +i: Tăng lên đơn vị • Phép biến đổi -i: Giảm đơn vị Yêu cầu: Hãy tìm cách sử dụng phép biến đổi để biến dãy a trở thành dãy thoả mãn: ≤ a1 < a2 < < an ≤ 100 Dữ liệu: Vào từ file văn SEQ.INP • Dòng 1: Chứa số n • Dòng 2: Chứa n số a1, a2, , an theo thứ tự cách dấu cách Kết quả: Ghi file văn SEQ.OUT • Dòng 1: Ghi số m số phép biến đổi tìm • m dòng tiếp theo, dòng ghi phép biến đổi Ví dụ: SEQ.INP SEQ.OUT +5 +5 +5 +5 +2 -1 -1 -1 SEQ.INP 98 99 100 96 SEQ.OUT +4 +4 +4 +4 -3 -2 -1 102 099 GIÁ TRỊ NHỎ NHẤT Một số nguyên dương x gọi số nguyên dương y ta xoá bớt số chữ số y để x Cho hai số nguyên dương a b tìm số c nhận a b con, cho giá trị c lớn Ràng buộc: ≤ a, b ≤ 10100; Dữ liệu: Vào từ file văn NUMBER.INP • Dòng thứ chứa số a • Dòng thứ hai chứa số b Kết quả: Ghi file văn NUMBER.OUT • Ghi dòng số c Ví dụ: NUMBER.INP 111999111 999111999 NUMBER.OUT 111999111999 NUMBER.INP 567812345678 123456781234 NUMBER.OUT 1234567812345678 103 100 NỐI DÂY Cho hai đường thẳng song song nằm ngang d d2 Trên đường thẳng, người ta chọn lấy n điểm phân biệt gán cho điểm số nguyên dương nhãn điểm đó: • Trên đường thẳng d1, điểm thứ i (theo thứ tự từ trái qua phải) gán nhãn • Trên đường thẳng d2, điểm thứ j (theo thứ tự từ trái qua phải) gán nhãn bj Ở (a1, a2, , an) (b1, b2, , bn) hoán vị dãy số (1, 2, , n) Yêu cầu: Hãy số tối đa đoạn thẳng thoả mãn: • Mỗi đoạn thẳng phải nối hai điểm có nhãn: điểm đường thẳng d điểm đường thẳng d2 • Các đoạn thẳng đôi điểm chung 6 d1 d2 Dữ liệu: Vào từ file văn LINES.INP • Dòng 1: Chứa số nguyên dương n ≤ 5000 • Dòng 2: Chứa n số dãy hoán vị a1, a2, , an • Dòng 3: Chứa n số dãy hoán vị b1, b2, , bn Kết quả: Ghi file văn LINES.OUT • Dòng 1: Ghi số k số đoạn thẳng nối • Dòng 2: Ghi k nhãn đoạn thẳng chọn (nhãn đoạn thẳng nhãn điểm đầu mút) Các số dòng Input / Output file ghi cách dấu cách Ví dụ: LINES.INP 6 LINES.OUT 4 LINES.INP 7 LINES.OUT 5 Cách cho điểm: Chấm theo 10 Test, điểm tối đa cho Test Đối với Test: • Nếu chương trình chạy gặp lỗi, ghi sai khuôn dạng Output, cho phương án nối dây không hợp lệ (có hai đoạn thẳng cắt nhau), chạy 10 giây: điểm • Nếu không, điểm cho test là: (Số dây nối tìm / số dây nối đáp án)2 104 ... 45 107 29 026 ĐƯỜNG ĐI NHIỀU ĐIỂM NHẤT Cho bảng A kích thước m x n (1 ≤ m, n ≤ 100), ghi số nguyên a ij (aij≤ 100) Một người xuất phát ô cột 1, cần sang cột n (tại ô được) Quy tắc đi: Từ ô... án để Mai Tuấn gặp sớm Dữ liệu vào đặt tệp FRIEND.INP: • Dòng chứa số nguyên dương N, M (1 ≤ N ≤ 100); • Dòng chứa số nguyên dương Ha, Sa, Hb, Sb số hiệu nút giao thông tương ứng với: Nhà Tuấn,... CỬA SỔ VĂN BẢN Xét văn T gồm N ký tự (N ≤ 1000000, N không cho trước) văn P gồm M ký tự (0 < M ≤ 100) Cửa sổ độ dài W đoạn văn gồm W ký tự liên tiếp T (M < W ≤ 1000) Nói cửa sổ W chứa mẫu P tồn