Chuyên đề bồi dưỡng hsg: phương pháp tham lam

6 1.5K 71
Chuyên đề bồi dưỡng hsg: phương pháp tham lam

Đang tải... (xem toàn văn)

Thông tin tài liệu

Tài liệu bồi dưỡng học sinh giỏi THPT – Môn Tin học Phần II: Chuyên đề nâng cao CHUYÊN ĐỀ NÂNG CAO CHUYÊN ĐỀ 5: PHƯƠNG PHÁP THAM LAM Giới thiệu Phương pháp tham lam mô hình thuật toán dùng để giải toán tối ưu tổ hợp Phương pháp xây dựng lời giải toán qua bước, bước chọn kết tối ưu cho bước Ưu điểm: Có thể áp dụng cho toán tối ưu, ý tưởng đơn giản, dễ cài đặt Hạn chế: thuật toán tham lam cho kết tối ưu Một số ví dụ 2.1 Ghép cặp số: Hãy ghép 2n số thành n cặp số cho tổng tích cặp số lớn biết số chọn ghép lần Dữ liệu: n a[1], a[2], ,a[2n] nhập từ bàn phím Kết quả: ghi hình tổng cặp số Ví dụ: Dữ liệu 1342 -4 Kết - Tổng: 14 - Các cặp: (1,2); (3,4) - Tổng: - Các cặp: (-4,0), (1,1); (3,2) * Phân tích toán input: N, a[1],a[2], ,a[2n] Output: tổng S, N cặp số * Ý tưởng thuật toán Tại bước chọn cặp (a,b) cho a*b lớn * Thuật toán Nhập N, a[1], ,a[2n] từ bàn phím Sắp xếp a[i] giảm dần Tham Tong:=0 For i=1 to n Tong:=Tong+a[2i-1]*a[2i] In kết quả: Tổng lớn là: Tong Cách ghép số là: (a[2i-1],a[2i]) với i=1…n 2.2 Mua kẹo: Siêu thị bày bán n gói kẹo, gói thứ i có giá a[i] (1 ... ghi vị trí bốc quân (1 N) Ví dụ: Bocbai.INP 12 Bocbai OUT Bocbai INP 12 Bocbai OUT Một số toán tham lam luyện thi học sinh giỏi http://laptrinh.ntu.edu.vn/Problem/Details/2201 http://laptrinh.ntu.edu.vn/Problem/Details/4... toán Khi mua quà ta chọn quà tiền * Thuật toán Đọc N,M, a[1], ,a[n] từ file Sắp xếp a[i] tăng dần Tham S:=0; T:=M; For i:=1 to n If T>=a[i] then S:=S+1; T:=T-a[i] In kết Ghi vào file dòng S T Lưu

Ngày đăng: 15/02/2016, 10:16

Từ khóa liên quan

Mục lục

  • input: N, a[1],a[2],..,a[2n]

  • Output: tổng S, N cặp số

  • Tại mỗi bước chọn cặp (a,b) sao cho a*b lớn nhất có thể.

  • 1. Nhập N, a[1],..,a[2n] từ bàn phím.

  • 2. Sắp xếp các a[i] giảm dần.

  • 3. Tham

    • Tong:=0

    • For i=1 to n do Tong:=Tong+a[2i-1]*a[2i]

    • 4. In kết quả:

      • Tổng lớn nhất là: Tong

      • Cách ghép các số là: (a[2i-1],a[2i]) với i=1…n.

      • input: n, m, a[1],a[2],..,a[n]

      • Output: số gói S và số tiền còn lại T

      • Khi mua một món quà ta chọn món quà ít tiền nhất có thể.

      • 1. Đọc N,M, a[1],..,a[n] từ file

      • 2. Sắp xếp các a[i] tăng dần

      • 3. Tham

        • S:=0; T:=M;

        • For i:=1 to n do If T>=a[i] then

          • S:=S+1;

          • T:=T-a[i]

          • 4. In kết quả

            • Ghi vào file trên mỗi dòng lần lượt S và T.

            • Lưu ý: Sau khi viết chương trình, cần test kỹ lưỡng, xét hết các trường hợp đặc biệt.

            • Ví dụ

Tài liệu cùng người dùng

Tài liệu liên quan