kết quả từ 1 tới 2 trên 2

Ðề tài: Tìm dãy con có độ dài lớn nhất?

  1. #1
    Join Date
    Jan 2011
    Bài gởi
    13
    Thanks
    0
    Thanked 5 Times in 3 Posts

    Học tập suôt đời! Tìm dãy con có độ dài lớn nhất?

    Bài tập: 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 số đã cho.
    Yêu cầu: Trong số các dãy con không giảm của dãy số đã cho mà các phần tử của nó đều thuộc dãy số {uk} xác định bởi u1=1, un = un-1+k, hãy tìm dãy con có độ dài lớn nhất.
    Nguồn: http://diendankienthuc.net.

  2. #2
    Join Date
    Aug 2009
    Bài gởi
    314
    Thanks
    260
    Thanked 251 Times in 113 Posts
    Blog Entries
    2

    Học tập suôt đời!

    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 := 1 to n do 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:= 2 to n do
    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.
    Nguồn: http://diendankienthuc.net.

  3. The Following User Says Thank You to beedrill For This Useful Post:


Bookmarks

Quuyền Hạn Của Bạn

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •