De thi HSG De thi HSG Bài 1 (6 điểm) Dãy con không giảm dài nhất Cho dãy số nguyên dương a1, a2, an Dãy số ai, ai+1, aj thoả mãn ai≤ ai+1≤ ≤aj với 1 ≤ i ≤ j ≤ n được gọi là dãy con không giảm của dãy[.]
De thi HSG Bài (6 điểm): Dãy không giảm dài Cho dãy số nguyên dương a1, a2,…an Dãy số ai, ai+1,…aj thoả mãn ai≤ ai+1≤ …≤aj với ≤ i ≤ j ≤ n gọi dãy không giảm dãy số cho Yêu cầu: Trong số dãy không giảm dãy số cho mà phần tử thuộc dãy số {uk} xác định u1=1, un = un-1+k, tìm dãy có độ dài lớn Dữ liệu vào từ file MAXSEQ.INP Dòng đầu chứa số nguyên dương n ≤ 10000 N dòng chứa số nguyên dương ≤ 10^8 (i = n) Kết quả: ghi file văn MAXSEQ.OUT số nguyên d độ dài dãy không giảm tìm (quy ước khơng tìm ghi d=0) Ví dụ: cho dãy (n=8): 2, 2007, 6, 6, 15, 16, 3, 21 -> Kết d = (là dãy 6, 6, 15) Bài làm: const max=10000; var A:array[1 max] of longint; D:array[0 max] of integer; n,M:integer; f: text; procedure nhap; var i : integer; begin assign(f,'MAXSEQ.INP'); reset(f); readln(f,n); for i := to n readln(f,a[i]); close(f); fillchar(d,sizeof(d),0); end; function chon(s : integer) : boolean; var x : longint; begin s:=2*s; x:= trunc(sqrt(s)); chon:= sqr(x)+x = s; end; procedure tinh; var i : integer; begin if chon(a[1]) then d[1]:=1 else d[1]:=0; m:=d[1]; for i:= to n if chon(a[i]) then begin if a[i]>=a[i-1] then d[i]:=d[i-1]+1 else d[i]:=1; if d[i]>m then m:=d[i]; end else d[i]:=0; end; procedure xuat; begin assign(f,'MAXSEQ.OUT'); rewrite(f); write(f,M); close(f); end; BEGIN clrscr; Nhap; tinh; xuat; end Bài Siêu thị may mắn An mời tham gia trị chơi “Siêu thị máy tính” đài truyền hình ZTV tổ chức Siêu thị đặt trường quay truyền hình có n mặt hàng đánh số từ đến n mặt hàng thứ i niêm yết giá c i đồng, i = 1, 2, …, n Theo thể lệ trò chơi, An ban tổ chức tặng thẻ mua hàng có giá trị s đồng phải dùng hết số tiền thẻ để mua hàng siêu thị với điều kiện mặt hàng thứ i mua với số lượng nhiều mi, i = 1, 2, …, n An người thắng tìm tổng số cách mua hàng thỏa mãn yêu cầu đặt cách mua hàng có Yêu cầu: Hãy giúp An trở thành người thắng cho bạn biết trước giá trị n, s, c i mi (1 ≤ n ≤ 500; ≤ s ≤ 105; ≤ ci ≤ 104; ≤ mi ≤ 100) với i = 1, 2, …, n Dữ liệu: Vào từ file văn SMARKET.INP Dòng chứa hai số nguyên dương s n; Dòng thứ i n dòng chứa số nguyên dương ci mi với i = 1, 2, …, n Kết quả: Ghi file văn SMARKET.OUT Dòng ghi số nguyên d tổng số cách mua hàng tìm được; Nếu d ≥ dịng thứ hai ghi cách mua hàng tìm dãy n số nguyên, dó số hạng thứ i số lượng mặt hàng thứ i mua cách mua hàng này, i = 1, 2, …, n Hai số liên tiếp dòng file liệu file kết cách dấu cách Ví dụ: Code: SMARKET.INP 12 2 SMARKET.OUT 2 http://www.dayhocintel.org/diendan/showthread.php?t=1440&page=6 ...BEGIN clrscr; Nhap; tinh; xuat; end B? ?i Siêu thị may mắn An mời tham gia trò chơi “Siêu thị máy tính” đài truyền hình... mua hàng thỏa mãn yêu cầu đặt cách mua hàng có Yêu cầu: Hãy giúp An trở thành người thắng cho b? ??n biết trước giá trị n, s, c i mi (1 ≤ n ≤ 500; ≤ s ≤ 105; ≤ ci ≤ 104; ≤ mi ≤ 100) với i = 1, 2,... đánh số từ đến n mặt hàng thứ i niêm yết giá c i đồng, i = 1, 2, …, n Theo thể lệ trò chơi, An ban tổ chức tặng thẻ mua hàng có giá trị s đồng phải dùng hết số tiền thẻ để mua hàng siêu thị với