-
11-26-2009, 02:35 AM #1
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 4
Đề thi Tin học , kì thi chọn hsg cấp Tỉnh Bà Rịa - Vũng Tàu lớp 12 THPT, năm 2009 - 2010
Bài 1: ( 8 điểm )
Trên mộ mảnh đất hình cuông người ta chia làm n x n ô vuông nhỏ bằng nhau để trồng trọt.Người ta muốn đánh số ô vuông để chia cho các hộ gia đình theo thứ tự từ 1 đến n^2 , gia đình thứ i nhận ô thứ i . Vì chất lượng để trồng trọt trên các ô vuông là khác nhau nên có rất nhiều phương án đánh số thứ tự. Cuối cùng mọi người đồng ý đánh số thứ tự theo đường xoắn ốc ( Sprial ) theo đề nghị của một số nhà toán học. Ô đầu tiên là số 1, theo thứ tự tăng dần từ trái sang phải, từ trên xuống dưới, từ phải sang trái, từ dưới lên trên và từ ngoài vào trong. Nhưng theo sự mô tả của nhà toán học mọi người vẫn k biết cách đánh số ntn.
Yêu cầu: Viết chương trình đánh số thứ tự theo đường xoắn ốc như mô tả trên.
Dữ liệu vào: file “Spiral.inp”
Chứa 1 số nguyên dương n (2<= n <= 100)
Dữ liệu ra: file “Spiral.out”
Chứa một ma trận cấp n x n mô tả cách đánh số theo hình xoắn ốc.
Ví dụ :
Inp
5
Out
1 2 3 4 5
16 1 7 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
Bài 2 ( 7 điểm)
Ngày xưa có anh nông dân hiền lành, khỏe mạnh đi cày thuê cho một người nhà giàu. Vì muốn cưới con gái của chủ, anh nông dân bèn lên rừng quyết tâm tìm cây tre trăm đốt, cây tre có chiều dài m. Sau khi đốn được cây tre, anh thất vọng ngồi khóc vì không thể nào vác cây tre ra khỏi rừng được. Bụt hiện lên nói: “Con hãy chia cây tre thành nhìu đoạn nhỏ, trong đó có n loại khác nhau, loaị thứ i có chiều dài ai và số lượng xi”. Nói xong bụt biến mất và để lại tờ giấy trong đó có 2 dòng, dòng thứ nhất mô tả ai, dòng thứ hai mô tả xi(i=1,2,..n). Nhưng không may nước mắt của anh nông dân rơi xuống tờ giấy làm nhòa đi các số liệu của xi . Vì không xác định được các giá trị xi để chia cây tre ra làm nhìu đoạn nhỏ, anh nông dân lại ngồi khóc tiếp. Một học sinh đi ngang qua, sau khi hỏi nguyên do, cậu học sinh liền mở máy tính ra viết chương trình để tìm các giái trị xi giúp a nông dân.
Yêu cầu: Hãy viết chương trình giúp a nông dân xác định các giá trị xi ( 1<= xi <= m)
Dự liệu vào : file “bamboo.inp” có chứa 2 dòng
-Dòng thứ nhất chứa 2 số nguyên dương m,n (1<=m <=65000; 1<=n<=100)
-Dòngthứ 2 chứ n số nguyên dương a1 ,…,an (1 <= ai <= 200)
Dữ liệu ra : file “bamboo.out”
Một dòng chứa n số nguyên dương x1,…,xn là bộ nghiệm đầu tiên được tìm thấy
Ví dụ :
Inp
30 3
7 4 5
Out
1 2 3
Bài 3 ( 5 điểm )
Để tổ chức Hội giảng cấp tỉnh Ban tổ chức Hội thi phải hoàn thành n công việc khác nhau, các công việc đượng đánh số thứ tự từ 1->n, thời gia để hoàn thành công việc thứ i là Ti (i=1,2,...,n). Có một số công việc phụ thuộc một hoặc nhìu công việc hoàn thành mới được thực hiện, biết rầng nếu i phụ thuộc vào j thì i>j. Sauk hi hoàn thành tất cả các công việc Ban tổ chức mới tiến hành khai mạc Hội thi.
Yêu cầu : Hãy viết chương trình giúp Ban tổ chức xác định thời gian sớm nhất để khai mạc Hội thi ( tính từ thời điểm bắt đầu tiến hành công việc).
Dự liệu vào: file “Modul.inp’
-Dòng thứ 1 chứa số nguyên dương n ( 1<= n <= 100)
-Dòng thứ i trong n dòng tiếp theo chứ số nguyên dương Ti và các số nguyên dương tiếp theo mô tả các công thức phải hoàn thành trước khi thực hiện công việc thứ i. Nếu công việc thứ i không phụ thuộc vào công việc nào thì trên dòng này chỉ chứ mỗi Ti.
Dữ liệu ra: file “Modul.out” chứa một số nguyên là thời gian sớm nhất để khai mạc Hội thi.
Ví dụ :
Inp
10
6
7
5
2 1 2 3
7
8
9
1 5 6 7
3 4 8
10 8
Out
20
p/s : tỉnh mình vẫn thi vik code trên giấy .
ngày thi : 24-11-2009
-
11-26-2009, 05:10 AM #2
Silver member
- Ngày tham gia
- Nov 2015
- Bài viết
- 0
Gửi bởi hang_vt
Bài 2. / Quay lui phải không chị? Code đây, test thì đúng, nhưng không chắc chạy tốt:
Mã:program caytre; uses crt; const fi='bamboo.inp'; fo='bamboo.out'; var a,x:array[1..200] of byte;m:longint;n,i:byte;kt:boolean;f:text; procedure input; begin assign(f,fi); reset(f); read(f,m); read(f,n); for i:=1 to n do read(f,a[i]); close(f); end; procedure print; var i:byte; begin assign(f,fo); rewrite(f); for i:=1 to n do write(f,x[i],' '); close(f); end; procedure cantsolve; begin assign(f,fo); rewrite(f); write(f,'Khong tim duoc bo nghiem thich hop'); close(f); end; function sum(n:byte):longint; var i:byte; begin sum:=0; for i:=1 to n do sum:=sum+a[i]*x[i]; end; function max(n:byte):longint; var i:byte; begin max:=a[1]; for i:=2 to n do if max<a[i] then max:=a[i]; end; procedure find(k:byte); var i:byte; begin if kt then exit else begin i:=1; while i<m div max(n) do begin x[k]:=i; if sum(n)=m then begin print; kt:=true; exit; end else if k<n then find(k+1); inc(i); end; end; end; BEGIN input; kt:=false; find(1); if not kt then cantsolve; END.
-
11-26-2009, 06:18 AM #3
Junior Member
- Ngày tham gia
- Nov 2015
- Bài viết
- 4
Bài 1 em viết code trong 1 topic khác rồi, nhưng ko nhớ nó ở topic nào, hình như thuật toán đại học thì phải.
Bài 2 chung ý tưởng với binhnguyen, nhưng thử cách chạy 3 vòng for xem sao. Nhưng nếu gặp test hiểm chắc thời gian trong mơ mất.
Bài 3 giống bài của mình kiểm tra xét học bổng lần trước, lần đó làm theo tham lam, chắc được 70% số test. Thi xong cô giáo bảo dùng hamilton - vì đi qua các đỉnh cũng tương tự như làm tất cả các công việc mà. Nhưng chưa hiểu lắm nên chưa cài đặt
-
11-26-2009, 10:51 PM #4
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 3
@ Nguyên :
- b2 : chưa tối ưu
dùng 2 mảng , tính tổng ngược và tổng xuôi thì tập đề cử ít hơn , ct chạy nhanh hơn
- b3 : suy nghĩ thêm ik . TG làm bài là 180min cơ
@ Long : chắc mình = tuổi bạn thôi , k phải xưng e thế [IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG]) . Mình học 11
b3 : dùng qhđ mờ
-
11-26-2009, 11:38 PM #5
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 4
hix, cúp điện cả ngày này, bi chừ mới được on =))
3 bài này mình làm ngon lành lắm, mà ko biết được bao nhiêu điểm [IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG])
-
11-26-2009, 11:47 PM #6
Silver member
- Ngày tham gia
- Feb 2016
- Bài viết
- 5
bài 2 này
Mã:const fi='BAMBOO.INP'; fo='BAMBOO.OUT'; var f:text; n,m:longint; x,a:array[1..100] of longint; tn:array[1..101] of longint; tx:array[0..101] of longint; procedure docfile; var i:longint; begin assign(f,fi); reset(f); readln(f,m,n); for i:=1 to n do read(f,a[i]); close(f); end; procedure ghi1kq; var i:longint; begin assign(f,fo); rewrite(f); for i:=1 to n do write(f,x[i],' '); close(f); halt; end; procedure try(i:longint); var j,k,tg:longint; begin tg:=m-tx[i-1]-tn[i+1]; k:=tg div a[i]; if (tg mod a[i])=0 then begin x[i]:=k; ghi1kq; end; if i<n then for j:=1 to k do begin x[i]:=j; tx[i]:=tx[i-1] + a[i]*j; try(i+1); x[i]:=1; end; end; procedure xuly; var i:longint; begin for i:=1 to n do x[i]:=1; for i:=n downto 1 do tn[i]:=tn[i+1]+a[i]; try(1); end; begin docfile; xuly; end.
-
11-26-2009, 11:50 PM #7
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 3
bài 3 đọc kĩ thì cần chi dùng đến đồ thị, tìm max Hằng nhỉ [IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG])
-
11-27-2009, 01:21 AM #8
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 5
Gửi bởi hang_vt
Bài 3 em không hiểu cả cái đề ấy chứ, không hiểu yêu cầu và input lắm.
-
11-27-2009, 01:45 AM #9
Junior Member
- Ngày tham gia
- Nov 2015
- Bài viết
- 1
Gửi bởi elnino_020993
b2 : tui k xét dk của i . Đc max điểm k nhỉ [IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG]) . Vào vòng try là for j lun
Mong kq quá . Hiếu giải I chắc r`
---------------------------------Bài viết đã được trộn ---------------------------------
Gửi bởi binhnguyenLQD-kg
- b2, c làm tựa tựa code của a Hiếu í
-
11-27-2009, 06:41 AM #10
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 2
Bài 3 QHD như nào thế, bài này mình làm tham lam vì hum đó thi theo nghĩa vụ, không để ý nên xài tham lam cho nhanh. THi xong mới biết tối ưu là hamilton.
Thứ 3 tuần sau mình thi tỉnh nha, mọi người chúc thi tốt tí đi để có tinh thần làm bài. Thi xong về post bài mọi người ngâm cứu.
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