Đến nội dung

Hình ảnh

For Pascal

- - - - -

  • Please log in to reply
Chủ đề này có 25 trả lời

#21
menrekcuf

menrekcuf

    Lính mới

  • Thành viên
  • 2 Bài viết
bai` 1 interval con` bai` 2 thi` Quick Sort

#22
tkhanh

tkhanh

    Binh nhì

  • Thành viên
  • 16 Bài viết
Bài số 2 mà bác dùng quick sort thì mình thấy hơi kỳ . Vì N tới 30 000 còn giá trị của nó thì từ 1 đến 2 000 000 làm sao bác có thể lưu trong mảng longint nào được . Còn nếu bác xài biến động thù cũng được nhưng phức tạp quá .
Cách giải của mình như sau : nhận thấy N <= 30 000 ---> kết quả của chúng ta cũng chỉ nằm từ 1 đến 30 001 ( 30001 là TH 30 000 nhân viên kia đã mang các số hiệu từ 1 đến 30 000 ) . Ta dùng một mảng Boolean [1..30001] để đánh dấu đã có .
Vậy khi kềt quả sẽ là vị trí đầu tiên trong mảng Boolean chưa được đánh dấu .

Bài 1 : cách của bạn cũng đúng . Vì đề dành cho lớp 9 nên chỉ dùng mảng array [1..1000] là đủ xài rồi .

#23
Gabriel

Gabriel

    Binh nhất

  • Thành viên
  • 41 Bài viết


            Var
            a:real;
            t:integer;
            Begin
              write('Nhap va so mu cua 2:');readln(t);
              If (t<1) and (t>200) then write('So mu phai nam trong khu vuc 1 den 200')
              Else
                  Begin
                    a:=(exp(t*ln(2));
                    write('2^',t,' la:',a);
                  End;
              readln;
            End.


Cuối cùng em cũng tìm được cách giải quyết bài này. Real thì không đủ vì rất hạn chế nên ta có thể dùng Extended, tập số lớn nhất, em đã test thử và cuối cùng cũng thành công. Phù :D
"Chém cha cái kiếp "lính phòng không""
----------------------------------------
"Ba trăm năm lẻ về sau
Ai người hiểu được chân tình của ta?"

#24
HaiDang

HaiDang

    Trung sĩ

  • Thành viên
  • 180 Bài viết
Tưởng cái gì tiến bộ hơn, không ngờ là chuyển sang extended pó tay, thế em không làm bằng string àh, cứ làm đi nếu có gì khó tụi anh post solution lên.
Ý, chịu hết nỗi rồi nè !!!! buông tha anh!!!!
Hình đã gửi Hình đã gửi

#25
TheIncredibleMachine

TheIncredibleMachine

    Binh nhất

  • Thành viên
  • 42 Bài viết
Bài 2: Cách giải của anh tkhanh là sai, đề bài bảo tìm số hiệu, số hiệu < 2 000 000 cơ mà, làm sao lại đánh dầu nhân viên được. Theo em có 2 cách giải quyết:
- Xây dựng hàm CoMat(i) trả giả trị là true nếu i có mặt trong dãy, sau đó sẽ kiểm tra từng số nguyên tứ 1 đến 2 000 000. Cách này hạn chế vì thời gian chạy sẽ rất lâu
- QuickSort lại, lưu trữ bằng danh sách liên kết. Cách này khá tốt, mặt hạn chế của nó ở chỗ xử lý hơi khó khăn, phải thật thông thạo về con trỏ.
Bài 1: Không cần thiết phải dùng đến Interval vì cài đặt hơi phức tạp, chỉ cần 2 vòng lặp là đủ.
Diễn đàn thảo luận giải thuật và lập trình: http://www.ioicamp.net/forums/
Các online judge hay: Sphere Online Judge - SPOJ Vietnam - TopCoder

#26
TheIncredibleMachine

TheIncredibleMachine

    Binh nhất

  • Thành viên
  • 42 Bài viết
Bài của anh binhminhhesang dùng duyệt theo chiều rộng, đây là bài em đã được thực hành trên lớp. Trước tiên đánh dầu tất cả các ô có mép phải không đi qua được, đẩy vào queue, sau đó từ những ô (chính xác hơn là cột) này, tìm tất cả các cột có khoảng cách đến cột này không đi qua được, kiểm tra xem mép phải của cột vừa tìm được có đủ để đi qua được không, nếu không -> kết thúc, in kq là không qua được. Nếu đã duyệt hết queue mà không tìm được thêm cột nào nữa, in kq là đi qua được.
Diễn đàn thảo luận giải thuật và lập trình: http://www.ioicamp.net/forums/
Các online judge hay: Sphere Online Judge - SPOJ Vietnam - TopCoder




1 người đang xem chủ đề

0 thành viên, 1 khách, 0 thành viên ẩn danh