1. nguyen minh duc

    Giải bài ntucoder Khieuvu3 - Khiêu vũ 3

    Link bài: Thuật toán: Ta sắp xếp dãy người theo thứ tự tăng dần của chiều cao. Do không có 2 người nào có chiều cao giống nhau, nên ta sẽ dùng chặt nhị phân để giải quyết bài toán (Giảm thời gian tìm kiếm khi chặt nhị phân chỉ cần O (logn) thay vì duyệt hết dãy với O (n). Duyệt dãy từ 1...
  2. nguyen minh duc

    Giải bài ntucoder OCSE - Ốc sên ăn rau

    Link bài: Thuật toán: Ta dùng thuật toán quay lui để đánh dấu tất lan dần cả các ô mà ốc sên có thể đi đến. Nếu các ô đó có rau thì ốc sên măm măm rồi đi tiếp. Code: #include <bits/stdc++.h> using namespace std; int n, m, y, x, ans, a[107][107]; void doit(int i, int j){ if (a[i][j]...
  3. nguyen minh duc

    Giải bài ntucoder - BINAS

    Link bài: Thuật toán: Ta dùng quay lui để gọi ra hết các trường hợp có thể xảy ra của chuỗi nhị phân rồi in ra. Code: #include<bits/stdc++.h> using namespace std; int i, n; int a[1000]; void viet(){ for (int i = 1; i <= n; i++){ cout << a[i]; } cout << endl; } void...
  4. nguyen minh duc

    Giải bài ntucoder TILE - Chồng gạch

    Link bài: Thuật toán: Những viên gạch to hơn chắc chắn sẽ đặt được nhiều viên gạch hơn lên trên nó. Ta sắp xếp các viên gạch theo thứ tự tăng dần về độ cứng. Chọn lần lượt từng viên gạch kèm theo ràng buộc về độ cứng nhỏ nhất trong chồng gạch được chọn, tránh tình trạng quá tải. VD...
  5. nguyen minh duc

    Giải bài ntucoder BNHAN - Bảng nhân

    Link bài: Thuật toán: Chạy 2 vòng for, lần lượt dùng một biến "dem" để liệt kê các giá trị của bẳng vào một mảng a. Sắp xếp mảng a và in ra giá trị thứ k của mảng. Code: #include <bits/stdc++.h> using namespace std; int dem, a[250007], n, m, k; int main(){...
  6. nguyen minh duc

    Giải bài ntucoder VASU - Vắt sữa bò

    Link bài: Thuật toán: Ta sẽ vắt các con bò theo thứ tự từ nhiều sữa nhất đến ít sữa nhất. Nếu vắt những con bò ít sữa hơn thì những con bò nhiều sữa hơn sẽ bị giảm lượng sữa rất nhiều (Tối đa n-1 lít) trong khi nếu để những con bò ít sữa vắt cuối cùng, chúng có hết sữa giữa chừng cũng không...
  7. nguyen minh duc

    Giải bài ntucoder SXTRON - Sắp xếp trộn

    Link bài: Thuật toán: Ta sẽ dùng đệ quy và 2 con trỏ để giải quyết bài này. Với con trỏ i, j trên 2 mảng a, b nếu a< b[j] ta sẽ in ra "ai" và tiếp tục với i+1, j. Code: #include <bits/stdc++.h> using namespace std; int c[107], b[107], n, m; void doit(int i, int j){ if (b[i] <= c[j]...
  8. nguyen minh duc

    Giải bài ntucoder KIVU - Khiêu vũ

    Link bài: Thuật toán: Gọi dãy các bạn trai là A và các bạn nữ là B. Ta sắp xếp các bạn nam và nữ theo thứ tự tăng dần về chiều cao. Bài này ta sẽ dùng 2 con trỏ. Với cặp A (i) và B (j) thỏa mãn ta sẽ ưu tiên dịch chuyển con trỏ trên dãy A một lượng x đơn vị đến khi gặp A (i+x) > B (j+1)...
  9. nguyen minh duc

    Giải bài ntucoder LUTA - Luyện tập (OLPCĐ 2011)

    Link bài: Thuật toán: Để giải một bài có độ khó cao hơn trình độ hiện tại, ta cần hoàn thành các bài có độ khó trong tầm với để tích lũy kinh nghiệm. Con đường trên là duy nhất, điểm kinh nghiệm là vô nghĩa nếu độ khó của bài là quá cao. Bằng tư duy đó, ta sẽ sắp xếp các bài với độ khó tăng...
  10. nguyen minh duc

    Giải bài ntucoder CASO - Cặp số

    Link bài: Cách 1: Thuật toán: Ta dùng thuật toán sắp xếp dãy n số. Như vậy, các số giống nhau sẽ đứng cạnh nhau. Đến số lượng các số giống nhau bằng biến "dem", như vậy mỗi khi ai == ai-1, ta sẽ cộng dồn "dem". Một dãy con có "dem" số giống nhau thì số lượng các cặp sẽ là dem* (dem-1) /2...
  11. nguyen minh duc

    Giải bài ntucoder CDIE - Cắm điện

    Link bài Thuật toán: Gọi số lượng lỗ cắm trên ổ cắm thứ i là Ai. Ta xác định số lượng ổ cắm cần dùng ít nhất bằng cách dùng lần lượt các ổ cắm lớn nhất đến nhỏ nhất. Xác định thứ tự ổ cắm bằng cách sắp xếp các ổ theo thứ tự từ lớn đến bé Sau mỗi lần nối thêm ổ cắm thứ i, số lượng lỗ cắm...
Back