Trang 3 / 6 FirstFirst 123456 LastLast
Hiển thị kết quả từ 21 đến 30 / 55
  1. #21
    Tham gia
    27-05-2008
    Location
    bình định
    Bài viết
    692
    Like
    0
    Thanked 10 Times in 6 Posts
    trời , vậy a hieu : e không được nộp bài nữa à ! huhu

    [=========> Bổ sung bài viết <=========]

    biết vậy nộp sớm , khỏi chỉnh sửa cũng ăn dc vài test roài huhu

    [=========> Bổ sung bài viết <=========]

    hay a kéo dài hạn nộp ra , a cứ cho hạn nộp là 1 ngày thì cuối cùng cuộc thi cũng chỉ cho mình quang thi chớ mấy ^^, mem khác bận túi bụi

    [=========> Bổ sung bài viết <=========]

    code của e nè , quái là chạy với m, n =10000 thì 1s, còn 100000 thì lên tới 15s , kì lạ thật
    a hieu có code nào chạy 1s với M=N=100000 thì chỉ giùm cái thuật toán với
    PHP Code:
    type bld=-2..100000;
    var 
    h,ax:array***91;1..100000***93; of bld;
        
    free:array***91;1..100000***93; of boolean;
        
    f:text;
        
    m,n:bld;
        
    max1,max2:bld;

    procedure init;
    var 
    i:bld;
    begin
     
    for i:=1 to n do begin free***91;i***93;:=trueh***91;i***93;:=1ax***91;i***93;:=iend;
     
    max1:=-1;
     
    max2:=-2;
    end;

    procedure find(var a,b:bld);
    begin
     
    while ax***91;a***93;<>do a:=ax***91;a***93;;
     while 
    ax***91;b***93;<>do b:=ax***91;b***93;;
    end;

    procedure nhap;
    var 
    i,a,b:bld;
    begin
     assign
    (f,'bunch.inp');
     
    reset(f);
     
    readln(f,n,m);
     
    init;
     for 
    i:=1 to m do
      
    begin
       readln
    (f,a,b);
       
    find(a,b);
       if 
    a<>b then
        begin
         free
    ***91;a***93;:=false;
         
    h***91;b***93;:=h***91;b***93;+h***91;a***93;;
         
    ax***91;a***93;:=b;
        
    end;
      
    end;
     
    close(f);
    end;

    procedure findmax;
    var 
    i:bld;
    begin
     
    for i:=1 to n do if free***91;i***93; then
       
    if h***91;i***93;>max1 then
        begin
         max2
    :=max1;
         
    max1:=h***91;i***93;;
        
    end
       
    else if h***91;i***93;>max2 then max2:=h***91;i***93;;
    end;

    procedure ghi;
    begin
     assign
    (f,'bunch.out');
     
    rewrite(f);
     
    write(f,max1+max2);
     
    close(f);
    end;

    BEGIN
     nhap
    ;
     
    findmax;
     
    ghi;
    END
    Được sửa bởi bld lúc 10:34 ngày 21-07-2009 Reason: Bổ sung bài viết

  2. #22
    Tham gia
    05-06-2009
    Location
    Tuyên Quang
    Bài viết
    656
    Like
    0
    Thanked 4 Times in 3 Posts
    Do đang bận ôn nên mình làm bài thi có trong 1 tiếng. Thấy đúng cái test đầu là nộp, đi làm mấy bài hình (do limit bài, toàn bài khó).
    Bao giờ bắt đầu vòng 2? Cho hạn thêm đi chứ. Em dạo này bận tóe khói.
    Thuật toán của bld là gì vậy. Thấy hơi giống của mình.

  3. #23
    Tham gia
    27-05-2008
    Location
    bình định
    Bài viết
    692
    Like
    0
    Thanked 10 Times in 6 Posts
    bài này tìm 2 thành phần liên thông lớn nhất , cứ xem mỗi thành phần có 1 nút gốc , nút đó mang độ lớn của thành phần đó và có ax của nó = chính nó , free của nó = true , các nút phụ thuộc khác có ax nối tới 1 nút khác và free = false , sau khi thực hiên hết thì tìm max1,max2 của các nút có free=true , công lại,....

  4. #24
    Tham gia
    05-06-2009
    Location
    Tuyên Quang
    Bài viết
    656
    Like
    0
    Thanked 4 Times in 3 Posts
    Vậy ăn được mấy test?????????

  5. #25
    Tham gia
    27-05-2008
    Location
    bình định
    Bài viết
    692
    Like
    0
    Thanked 10 Times in 6 Posts
    mình đâu có test , đề anh hieu test thử chứ

  6. #26
    Tham gia
    14-03-2007
    Bài viết
    510
    Like
    0
    Thanked 3 Times in 3 Posts
    Hiếu đã nói hướng giải rồi đó :

    (1) : Thực hiện 1 bước của mình trc.
    (2) : Thực hiện M bước theo yêu cầu.

    Nhận xét : Do tất cả các chồng lúc đầu đều có 1 ly => (1)->(2) <=> (2)->(1).

    Bây giờ, ta thực hiện M bước theo đề bài, tất nhiên ta sẽ có dễ dàng tính đc chồng lớn nhất có bao nhiêu ? Bây giờ có 2 trường hợp xảy ra :

    - Tất cả các chồng đều bị ảnh hưởng của M phép biến đổi : thì ta sẽ lấy 1 ly từ một chồng nào đó ko ảnh hưởng trong việc biến đổi tạo ra chồng lớn nhất chồng lên chồng lớn nhất

    - Tồn tại 1 chồng ko bị ảnh hưởng của M phép biến đổi : vẫn đơn giản lấy 1 ly của chồng này chổng lên chồng lớn nhất

  7. #27
    Tham gia
    01-08-2008
    Location
    Hà Nội - HUS
    Bài viết
    142
    Like
    0
    Thanked 0 Times in 0 Posts
    Cách làm của mình là coi mỗi a b là đỉnh a và b có đg nối , rồi qua m bước , tìm 2 thành phần liên thông có nhiều đỉnh nhất . Từ đó lấy 1 a và 1 b bất kì nào đó trong 2 thành phần liên thông đó ---> kết quá . chả biết có đúng ko ? =))

    [=========> Bổ sung bài viết <=========]

    P/s : Hình như có 1 nhận xét là M bước đó thực hiện bước nào trước cũng đều ra 1 kq giống nhau
    Được sửa bởi linhhahaduc lúc 12:28 ngày 21-07-2009 Reason: Bổ sung bài viết

  8. #28
    Tham gia
    28-06-2007
    Location
    HCM
    Bài viết
    270
    Like
    0
    Thanked 9 Times in 9 Posts
    bài này chẳng dùng thuật toán nào cả, cứ thực hiện M bước đổi rồi sau đó lấy 2 chồng cao nhất úp lên nhau

  9. #29
    Tham gia
    06-11-2008
    Bài viết
    103
    Like
    0
    Thanked 3 Times in 3 Posts
    tại sao thi tin học toàn thấy lập trình nhỉ

  10. #30
    Tham gia
    01-08-2008
    Location
    Hà Nội - HUS
    Bài viết
    142
    Like
    0
    Thanked 0 Times in 0 Posts
    Thảo nào thôi xác định luôn bài mình tle

    [=========> Bổ sung bài viết <=========]

    Có được đóng góp đề cho BGK đề làm đề thi ko nhỉ ? ) mình còn cả đống bài khó , đang bí )
    Được sửa bởi linhhahaduc lúc 18:03 ngày 21-07-2009 Reason: Bổ sung bài viết

Trang 3 / 6 FirstFirst 123456 LastLast

Bookmarks

Quy định

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể trả lời bài viết
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình
  •