-
05-22-2010, 03:53 AM #1
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 0
Đề thi tin học trẻ không chuyên huyện Hải Lăng
Bài 1: BÀI TOÁN DIỆN TÍCH TAM GIÁC (6 điểm)
Cho một hình chữ nhật ABCD, cạnh AB=a, cạnh BC=b; a,b là các số nguyên dương trong khoảng [1..100] (a>b)
Một điểm M chạy trên đoạn BC với Bm=x; x là số nguyên dương trong khoảng [0..b], một điểm N chạy trên đoạn CD với CN=x.
Tính giá trị lớn nhất và giá trị nhỏ nhất của diện tích tam giác ABCD khi M,N di động
Dữ liệu vào: Được cho trong tập tin CHUNHAT.INP, gồm một dòng ghi hai số nguyên dương a và b. Hai số cách nhau một khoảng trắng.
Dữ liệu ra: Yêu cầu xuất ra tập tin CHUNHAT.OUT gồm 4 dòng:
- Dòng đầu là giá trị lớn nhất của diện tích tam giác AMN (số thập phân)
- Dòng thứ hai là một giá trị của x để diện tích tam giác AMN đạt giá trị lớn nhất (số nguyên)
- Dòng thứ ba là giá trị nhỏ nhất của diện tích tam giác AMN (số thập phân)
- Dòng thứ tư là một giá trị của x để diện tích tam giác AMN đạt giá trị nhỏ nhất (số nguyên)
Ví dụ:
CHUNHAT.INP
10 6
CHUNHAT.OUT
30.0
0
17.5
5
Bài 2: (6 điểm)
Một số K được gọi là số chính phương khi và chỉ khi tồn tại một số x sao cho x*x=K
Viết chương trình thực hiện các yêu cầu sau:
a/ Nhập vào 2 số nguyên dương N,M lớn hơn hoặc bằng 2. Chương trình có kiểm tra giá trị nhập vào.
b/ Nhập vào một mảng 2 chiều A gồm N hàng và M cột.
c/ Tìm tất cả các số chính phương trong mảng ở câu b và lưu vào mảng một chiều.
d/ In ra mảng một chiều chứa các số chính phương của mảng hai chiều A vừa tìm được ở câu c ra màn hình.
Câu 3: HOÁN VỊ THUẬN THẾ (6 điểm)
Cho a=(a1,a2,......,an) là một hoán vị của dãy số tự nhiên 1..N. Ta xây dựng dãy b=(b1,b2,....,bn) và gọi là thuận thế của hoán vị như sau:
Mới mọi i=1..N, bi là số lượng các phần tử nhỏ thua ai và đứng trước ai
a/ Cho N và một hoán vị a. Hãy tìm thuận thế của a.
b/ Cho N và một thuận thế b. Hãy tìm hoán vị sinh ra thuận thế b.
Dữ liệu vào: vào từ bàn phím
a/ Nhập vào từ bàn phím số N và hoán vị a
b/ Nhập vào từ bàn phím số N và một thuận thế b
Dữ liệu ra: in ra màn hình
a/ in ra thuận thế của a
b/ in ra hoán vị sinh ra thuận thế b
Ví dụ:
a/ N = 9
a = 2 1 7 6 5 4 3 8 9
Thuận thế của a là: 0 0 2 2 2 2 2 7 8
b/ N = 9
b = 0 1 1 2 4 1 5 5 8
Hoán vị sinh ra thuận thế b là: 1 5 3 4 8 2 7 6 9
---------------------------------Bài viết đã được trộn ---------------------------------
Câu 3b ngồi nát óc hết 1h30p' mà làm ko ra đành chấp nhận giải KK. Hjx!!! [IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG]
-
05-22-2010, 05:15 AM #2
Silver member
- Ngày tham gia
- Apr 2016
- Bài viết
- 286
Bạn chỉ còn câu 3b thôi chứ gì?
Theo mình thì thuật toán câu 3b nói chung sẽ như này thôi:
Duyệt từ cuối dãy B, với 1 phần tử của B, ta xác định phần tử đúng của A ở vị trí đó.
Còn để xác định đúng phần tử A như nào thì bạn quan sát kĩ test đề ra sẽ tự thấy cách tìm, còn không thì xem bên dưới đây:
Test đề bài: 0 1 1 2 4 1 5 5 8
Tạo mảng C có ý nghĩa A được xác định rồi thì C = false không thì = true
Duyệt i=9, B = 8 => A=9 (vì C[1->8] chưa false, A[9] thỏa mãn), C[9]=F.
i=8, B=5 => phần tử BÉ NHẤT trong A thỏa mãn là 6. C[6]=F.
i=7, B=5 => phần tử BÉ NHẤT trong A thỏa mãn LÚC NÀY là 7 (vì C[6]=F nên coi như không có 6 trong dãy đằng trước i). C[7]=F.
i=6, B=1 => phần tử BÉ NHẤT trong A thỏa mãn là 2. C[2]=F.
Tới lúc này mình nghĩ bạn đã hiểu làm thế nào rồi chứ, đơn giản thôi phải không?
-
05-23-2010, 02:30 AM #3
Junior Member
- Ngày tham gia
- Nov 2015
- Bài viết
- 0
Gửi bởi o0Tieu0Long0o
Sao bạn Long k làm típ nhỉ [IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG]. Mình làm theo ý tưởng của bạn thì được thế này cơ: 1 8 4 3 5 2 7 6 9
-
05-23-2010, 04:42 AM #4
Silver member
- Ngày tham gia
- Aug 2015
- Bài viết
- 6
Gửi bởi o0Tieu0Long0o
Sao mình làm theo mà không chạy ra được??????
---------------------------------Bài viết đã được trộn ---------------------------------
Hình như bạn Long hiểu sai đề hay sao nhỉ? Bài 3 là 2 câu a,b tách riêng luôn mà! :-/
-
05-24-2010, 04:03 AM #5
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 1
Gửi bởi hang_vt
TO Speed: chương trình bạn làm không chạy thì có lẽ bạn nên xem lại. Do bạn nói rằng câu b bạn không nghĩ được nên mình chỉ thuật toán câu b thôi, còn câu a với câu b có liên quan hay không thì mình không quan tâm tới nữa. Nếu bạn sửa chương trình vẫn không chạy được, bạn có thể kiểm tra lại mảng đánh dấu, đó là điểm dễ mắc lỗi, còn nếu vẫn không chạy được, bạn có thể add nick chat của mình để mình trực tiếp xem code cho bạn.
-
05-24-2010, 05:20 AM #6
Junior Member
- Ngày tham gia
- Nov 2015
- Bài viết
- 4
Mình nghĩ đầu tiên chủ topic phải cho mọi người biết cái giới hạn của bài 3 đã
-
05-24-2010, 05:57 PM #7
Silver member
- Ngày tham gia
- May 2016
- Bài viết
- 75
N giới hạn trong [1..MaxInt]
--------------------------
-
05-25-2010, 12:09 AM #8
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 3
MaxInt của bạn cụ thể bằng bao nhiêu??? Có nhiều kiểu Int lắm.
Thêm nữa là mình đang muốn biết cách bạn giải quyết câu a thế nào :-? Nếu cách của bạn thuần tuý N^2 và vẫn ăn được hết điểm câu A thì câu b bạn có thể làm theo cách của TieuLong. TieuLong chú ý là cách đấy có độ phức tạp là O(N^2) chứ không phải O(N) như TieuLong nói hôm trước. Tại vì chạy một vòng lặp từ N về 1, trong đó lại for để tìm phần tử thích hợp nữa thì đúng là O(N^2) nhé [IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG]
-
05-25-2010, 04:09 AM #9
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 3
Nghĩ kĩ thì đúng là N^2 thật, để em xem xét lại cách N đã.
-
05-25-2010, 05:30 AM #10
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 2
Thuật toán cải tiến thuật toán cũ của TieuLong như này: Khi tìm A đúng vị trí, ta không chạy for tìm kiếm mà thay vào đó, bước khởi tạo ta xây dựng 1 mảng có ý nghĩa lưu trứ phần tử A đúng ở vị trí i, khi nào cần lấy A chỉ cần lấy phần tử tương ứng trong mảng đó là được, tuy nhiên sau mỗi bước lấy A ra, ta phải hiệu chỉnh lại mảng đó 1 chút.
Xe nâng người Boom lift được Công Ty TNHH Trung thành phân phối chính hãng tại khu vực phía Bắc. Với chi phí đầu tư ban đầu thấp hơn rất nhiều so với các loại xe nâng dầu , xe nâng động cơ loại...
Xe nâng người được trung thành nhập khẩu giá tốt