Nguồn đề bài: http://www.spoj.com/PTIT/problems/BCCOW/
1. Đề bài BCCOW spoj PTIT
Nông dân John đang đưa các con bò của anh ta đi xem phim! Xe tải của anh ta thì có sức chứa có hạn thôi, là C (100 <= C <= 5000) kg,
anh ta muốn đưa 1 số con bò đi xem phim sao cho tổng khối lượng của đống bò này là lớn nhất, đồng thời xe tải của anh ta vẫn chịu được.
Cho N (1 <= N <= 16) con bò và khối lượng W_i của từng con, hãy cho biết khối lượng bò lớn nhất mà John có thể đưa đi xem phim là bao nhiêu.
Dữ liệu
- Dòng 1: 2 số nguyên cách nhau bởi dấu cách: C và N
- Dòng 2..N+1: Dòng i+1 chứa 1 số nguyên: W_i
Kết quả
- Dòng 1: Một số nguyên là tổng khối lượng bò lớn nhất mà John có thể mang đi xem phim.
Ví dụ:
Dữ liệu:
259 5
81
58
42
33
61
Kết quả:
242
Giải thích: 81+58+42+61 = 242; đây là tổng khối lượng bò lớn nhất có thể được.
2. Hướng dẫn BCCOW spoj PTIT
– bài này các bạn có thể dùng tham lam.
3. code tham khảo BCCOW spoj PTIT
const fi=''; var A:array[1..16] of word; N:byte; M:word; f:text; dd:array[1..16] of boolean; S,smax:integer; sl:byte; procedure docfile; var i:byte; begin assign(f,fi); reset(f); readln(f,m,n); i:=0; while not eoln(f) do begin inc(i); readln(f,a[i]); if a[i]>M then begin dec(i); dec(n); end; end; close(f); end; procedure sort(l,r: longint); var i,j,x,y: longint; begin i:=l; j:=r; x:=a[(l+r) div 2]; repeat while a[i]>x do inc(i); while x>a[j] do dec(j); if not(i>j) then begin y:=a[i]; a[i]:=a[j]; a[j]:=y; inc(i); j:=j-1; end; until i>j; if l<j then sort(l,j); if i<r then sort(i,r); end; procedure init; begin s:=0; smax:=0; sl:=0; end; procedure try; // chon con bo thu i; var j:byte; begin if s>smax then smax:=s; for j:=1 to n do if (not dd[j]) and (s+a[j]<=m) then begin dd[j]:=true; inc(s,a[j]); try; dd[j]:=false; dec(s,a[j]); end; end; begin docfile; sort(1,n); try; writeln(smax); end.
Ad ơi cho em xin code C++ dc k ạ mail em [email protected]
Chào bạn,
Xin lỗi bạn vì mình phản hồi chậm.
Hiện tại bạn còn cần code c++ cho bài này không ạ?
bài này dùng tham lam chỉ đc 30 điểm thôi a..vs lại k chính xác -> dùng qhđ Vd
Test 10 4
6 5 3 2
Nếu có code bạn cứ chia sẻ nha 😀 Do trước mình làm tham lam mà Accept luôn nên ko làm nữa
Không biết ad có code bài này C hay C++ không ạ? Nếu có cho e xin với ạ