Đội ôn thi tin học trẻ không chuyên năm 2012

Status
Không mở trả lời sau này.
T

thiennu274

Cái bài con kiến thi năm trước hình như giống bài BA LÔ của QHĐ thì phải????
Mà sắp thi rồi, cho mình hỏi là có thi trắc nghiệm không nhở (mong la không có)? Toàn quốc dùng turbo hay free?
 
1

11thanhkhoeo

không có trắc nghiệm em nhé

Sẽ có cả free , turbo , c ,c++ trên máy cho em chọn

Thân
 
P

programmer

sao pascal không ứng dụng đc gì mà BGD lại cho học với thi nhỉ.sao không đổi ngôn ngữ khác ví dụ C chẳng hạn C đứng đầu đấy :D
 
M

mikelhpdatke

Vì pascal có ngôn ngữ dể hiểu và sử dụng, phù hợp với lứa tuổi hs. Còn nhiều nữa chưa nghĩ ra ;))
 
N

nghgh97

Vì pascal là ngôn ngữ có cấu trúc chặt chẽ phù hợp với lứa tuổi học sinh mới làm quen với lập trình, có nền tảng pascal rồi sau này bạn học các ngôn ngữ khác sẽ dễ hơn
 
M

mikelhpdatke

Trò chơi với băng số là trò chơi tham gia trúng thưởng được mô tả như sau: Có một băng hình chữ nhật được chia ra làm n ô vuông, đánh số từ trái qua phải bắt đầu từ 1. Trên ô vuông thứ i người ta ghi một số nguyên dương ai, i = 1, 2, ..., n. Ở một lượt chơi, người tham gia trò chơi được quyền lựa chọn một số lượng tùy ý các ô trên băng số. Giả sử theo thứ tự từ trái qua phải, người chơi lựa chọn các ô i1, i2, ..., ik. Khi đó điểm số mà người chơi đạt được sẽ là:

  • ai1 - ai2 + ... + (-1)k-1aik
Yêu cầu: Hãy tính số điểm lớn nhất có thể đạt được từ một lượt chơi.
Dữ liệu:


  • Dòng đầu tiên chứa số nguyên dương n ( n ≤ 106 ) là số lượng ô của băng số;
  • Dòng thứ hai chứa n số nguyên dương a1, a2, ..., an ( ai ≤ 104, i = 1, 2, ..., n ) ghi trên băng số. Các số liên tiếp trên cùng dòng được ghi cách nhau bởi ít nhất một dấu cách.
Kết quả:


  • Một số nguyên duy nhất là số điểm lớn nhất có thể đạt được từ một lượt chơi.
Ví dụ:

LINEGAME.jpg

Dữ liệu ............Kết quả


7
4 9 2 4 1 3 7 .........17
 
M

mikelhpdatke

Đây là code bài băng số. Chỉ được 90đ/100 :-?
Sao box vắng thế:)|

Mã:
Var n:longint;
    A:array[0..1000001] Of Longint;
    F:array[0..1000001,1..2] Of int64;
Procedure Init;
Var i:Longint;
 Begin
  Readln(n);
  For i:=1 to n do read(a[i]);
  writeln;
  
  F[0,1]:=0;
  F[0,2]:=0;
 End;

Function Max(a,b:Longint):Longint;
Begin
 If a>b then max:=a else max:=b;
 End;

Procedure Install;
 Var i,j:Longint;
  Begin
    For i:=1 to n do
     For j:=1 to 2 do
         If j=1 then
           F[i,j]:=Max(F[i-1,j],F[i-1,2]+A[i])
         Else
           F[i,j]:=Max(F[i-1,j],F[i-1,1]-A[i]);
      
  Writeln(Max(F[n,1],F[n,2]));
 End;
BEGIN
Init;
Install;
readln
end.
 
S

shiningstar_193

Đây là code 100đ bài đấy của anh:
Mã:
Var
        n,i,a  :longint;
        m1,m2  :int64;
        m3,max  :int64;

begin
        max:=0;
        m1:=0;
        m2:=0;
        readln(n);
        for i:=1 to n do
                begin
                        read(a);
                        m3:=m1;
                        if m1<m2+a then m1:=m2+a;
                        if m2<m3-a then m2:=m3-a;
                        if m1>max then max:=m1;
                        if m2>max then max:=m2;
                end;
        write(max);
        end.
 
Last edited by a moderator:
P

programmer

Vì pascal là ngôn ngữ có cấu trúc chặt chẽ phù hợp với lứa tuổi học sinh mới làm quen với lập trình, có nền tảng pascal rồi sau này bạn học các ngôn ngữ khác sẽ dễ hơn
cú pháp của pascal không mấy rõ ràng lắm chương trình pascal thường khó xem hơn C/C++/C#,... nếu muốn làm quen với lập trình theo mình nên học C tốt hơn học các ngôn ngữ họ C dễ kiếm tiền hơn :X
 
M

mikelhpdatke

Mình nghĩ cái cảm nhận NNLT nào dễ hơn là tùy từng người, nhưng mình thấy NNLT Pas dễ hiểu và nhớ (Vả lại trong nhiều tài liệu nó cũng bảo thế =)) ). Đó cũng là 1 phần lý do BGD chọn NNLT này :))
 
M

mikelhpdatke

Tiếp tục

Cho số nguyên dương N (0<N<=500.000). Tìm số nguyên dương S nhỏ nhất thoả mãn các tính chất sau:
- S >= N
- Trong dạng biểu diễn cơ số 10, S không chứa các chữ số khác ngoài 7, 2, 0 và không bắt đầu bằng 0.
- Có không quá 20 chữ số (ở hệ 10).
- S chia hết cho N.
Dữ liệu vào file BHK.INP: Gồm nhiều dòng, mỗi dòng ghi 1 số nguyên N.
Kết quả ra file BHK.OUT: Mỗi dòng ghi 1 số nguyên S tương ứng với file BHK.INP, hoặc là chữ NO nếu không tồn tại S.
Ví dụ: 3 -> 27, 61 -> 70272


Thuật: Quay lui :)
 
M

mikelhpdatke

Bài này giống bài liệt kê dãy nhị phân 8-X
Bài này phải cài số lớn rồi, 20 cs thì không ăn nổi . Tạm thời đúng đến 19cs :)).
Mã:
Var X:array[1..100] Of String;
    Cs:array[1..3] Of String = ('0','2','7');
   k:Integer;
   n:string;
   kt:boolean;
Procedure  PrintReSult;
Var i:integer;
    KQ,t:Qword;
    st:string;
 Begin
 KQ:=0;
 St:='';
  For i:=1 to k do st:=st+x[i];
  Val(st,KQ);
  Val(n,t);
  If Kq mod t=0 then
    Begin
      kt:=True;
      writeln(Kq);
    End;
 End;

Procedure Install(i:integer);
Var j:integer;
 Begin
   If kt then exit;
  For j:=1 to 3 do
   Begin
    If (i=1) and (j=1) then continue;
    x[i]:=cs[j];

    If i=k then PrintResult
    Else Install(i+1);
   End;
 End;

BEGIN
 readln(n);
 kt:=False;
 For k:=length(n) to 20 do
  begin
   Install(1);
   if kt then break;
  ENd;
 readln
 end.
 
C

cuong276

Nếu giống bài nhị phân thì cần gì dùng đến quay lui
Dùng thuật toán hoán vị là xong.
 
M

mikelhpdatke

Nó cũng giống khoảng 60%, còn lại là biến hóa đi tý, quan trọng là có tìm ra ý tưởng liệt kê các số 0 2 7 hay ko thôi
 
C

cuong276

Mình nghĩ ra cách này có vẻ không ổn cho lắm nhưng có vẻ đúng
Duyệt tìm các bội của N, nếu tìm thấy bội nào nhỏ nhất mang toàn chữ số 0 2 7 thì in số đó ra.
Cách này có được không? Nếu dùng cách này thì chẳng cần đến quay lui hay hoán vị gì cả. Xử lí bình thường thôi
 
T

thiennu274

Nếu dùng như bạn Cương nói thì, bài chạy chậm lúm nhaz. Tại phải dùng vòng lặp, bài nỳ cho đệ quy quay lui mak`, phải hem???? :D
P/s: sắp thi... Không tâm trạng ôn :D
 
M

mikelhpdatke

Cách cũng đúng đấy :).
Càng đến lúc thì càng thấy nhiều bài khó :)).........................
 
M

mikelhpdatke

Năm nay thể lệ thi khác 2 năm kia, nó chấm cả CT thì phải, ko may đc như năm ngoái đâu. Năm trước, anh Kiên ở HN duyệt trâu cũng nhất :)). Năm nay lại khác hoàn toàn
 
Status
Không mở trả lời sau này.
Top Bottom