PDA

View Full Version : Làm giúp mình với, sắp chết ruiiiiiii!



manh_kqha
23-06-2009, 09:26
Có bài toán này xem hộ mình nhé! mai thi rùi ma chẳng bit giai quyết thế nào! Bạn nào biết chỉ mình với nhé!
Đề bài nhé: "Người ta may sẵn n cái áo với các kích thước vai V(1), V(2), …, V(n) cho n học sinh. Các học sinh này được đánh số từ 1 tới n và có kích thước vai là p(1), p(2), …, p(n). Nếu học sinh i được nhận áo j thì độ lệch vai cho trường hợp này sẽ là |V(i)-p(j)|. Một phương án phân phối áo cho các học sinh 1, 2, ...n được mô tả như một hoán vị T1, T2, ..., Tn với hàm ý học sinh i nhận được áo Ti. Độ lệch của phương án này được định nghĩa bằng
max {|V(i) – p(Ti)|, i=1,2,...,n}
Hãy xây dựng thuật toán phân phối áo cho các học sinh sao cho độ lệch là cực tiểu. Đánh giá độ phức tạp của thuật toán xây dựng được"

kimduquan
24-06-2009, 08:18
theo mình thì dùng quay lui cho bài này,bài này cũng tương tự như bài người du lịch:
void try(int j)
for(0->n)
{
chọn chiếc áo v(i) cho hs (j)
if(j==n)
{
tìm max(|v(i)-p(Ti)|,i=1,2,3,...,n);
lưu trong 1 biến toàn cục;
}
else
{
try(j+1);
}
ghi nhận việc bỏ chọn chiếc áo v(i) cho hs (j)
}
}
còn độ phức tạp thì bạn tự làm nha!