[Thuật toán] THÁCH THỨC TOÀN THỂ SINH VIÊN UIT

Sau khi xem qua một số bài tập thuật toán được post trên forum của trường UIT, mình thấy trình độ các bạn còn non kém quá. Không biết UIT các bạn có nhân tài thuật toán nào không. Nhân đây, mình “mạn phép” post 1 bài sau đây. Hi vọng UIT có người giải được.

Giới hạn thời gian: 1s
Ngôn ngữ: C++, Java, Pascal.
Cho N người(2≤N≤32) ,mỗi người có một số ai(1 ≤ ai ≤ 10^9) được gọi là độ tin cậy

Cần phân chia n người này vào 2 tập sao cho:

  • Mỗi người thuộc đúng một tập

  • Chênh lệch tổng độ tin cậy của 2 phần là bé nhất
    Input

Dòng đầu chứa số nguyên N

Dòng tiếp theo chứa N số : số thứ i là độ tin cậy của người thứ i
Output

Ghi ra hai số u và v với u là độ chênh lệch nhỏ nhất và v là số cách phân chia
Example

Input:
5
1 5 6 7 8
Output:
1 3

Chú thích : Độ chênh lệch ít nhất của 2 phần là 1
Có 3 cách phân chia .3 cách phân chia nhóm 1 là (3,5) ,(1,3,4)
và (1,2,5)

Các bạn có thể kiểm tra tính đúng đắn của bài giải bằng cách nộp ở trang http://vn.spoj.pl/problems/LQDDIV/.
“Good luck”

Chắc lại khích để nhờ giải dùm đồ án rồi:)))

Không biết trình độ bạn thế nào nhưng cách nói chuyện và đặt tiêu đề của bạn thì thấy rõ bạn là một con người tự cao tự đại. Nên nhớ núi cao có núi còn cao hơn. Bó tay một con người :|. Đề nghị các bạn UIT không giải mà cứ gạch đá chủ topic vào :smiley:

Quảng cáo cho cái site http://vn.spoj.pl/problems/LQDDIV/. chứ j đâu mà … anh em có cần gạch chất lượng cao ko :-?

Cái site đó nguy cơ bị sập rất cao, tội nghiệp :))

[QUOTE=CLB ArtUIT;18941]Quảng cáo cho cái site http://vn.spoj.pl/problems/LQDDIV/. chứ j đâu mà … anh em có cần gạch chất lượng cao ko :-?[/QUOTE]
Cần , gạch nung trong lò bát quái í :slight_smile:

[QUOTE=anonymous;18931]Sau khi xem qua một số bài tập thuật toán được post trên forum của trường UIT, mình thấy trình độ các bạn còn non kém quá. Không biết UIT các bạn có nhân tài thuật toán nào không. Nhân đây, mình “mạn phép” post 1 bài sau đây. Hi vọng UIT có người giải được.
[/QUOTE]
Do bên UIT “giấu hàng ở” http://forum.uit.edu.vn/forums/74-Thuat-toan-OLP nên bên ngoài hok thấy được.
Đề nghị các bạn giải 1-2 chứ không nên có lời lẻ không hay.
*Giang hồ *cũng nên múa vài đường quyền để tự giới thiệu.

có tài mà hay khoe là vô dụng :slight_smile:

:frowning: mình thì tài không có nhưng mà gạch đá thì nhiều
Chắc bác cần gạch xây nhà hay xây j j đó mà nghèo không có nên cần thu gom??

các bác không hiểu gì hết , bạn ấy đang PR cho trang http://vn.spoj.pl/problems/LQDDIV/ gồm toàn những thằng dở hơi rảnh đời chuyên khoe khoang tụ tập ấy mà

DIS … like :-"

Thường thì những bài mình nghĩ ra cách làm ít khi nào là bài khó, bài này mình cũng nghĩ ra 1 cách bạn coi thử đúng hay k?
Tìm độ chênh lệch nhỏ nhất:sắp xếp các số theo thứ tự tăng, rồi đặt số lớn nhất vào một trong hai tập. Sau đó, đặt số tiếp theo vào tập đang có tổng bé hơn, tiếp tục cho đến khi tất cả các số được xét.Ta đc 2 phần, lấy abs hiệu 2 phần ra độ chênh lệch nhỏ nhất.
Sau cùng đệ quy tìm tất cả các tổ hợp phù hợp có độ chlech pé nhất r đếm số trường hợp in ra.

program test;
var
a,b,c:array[0..33] of integer;
tong,n,chlmin,s,dem,so:integer;
{-------------------------------------------}
procedure nhap;
var
i:integer;
begin
writeln('Nhap n: ');
readln(n);
tong:=0;
writeln('Nhap mang: ');
for i:=0 to n-1 do
begin
readln(a*);
b*:=a*;
tong:=tong+a*;
end;
end;
{----------------------------------------------}
procedure xeptagdan;
var
i,j,z:integer;
begin
for i:=0 to n-2 do
for j:=i+1 to n-1 do
if b*>b[j] then
begin
z:=b*;
b*:=b[j];
b[j]:=z;
end;
end;
{--------------------------------------------}
procedure chenhlechmin;
var
w1,w2,i:integer;
begin
w1:=b[n-1];
w2:=0;
for i:=n-2 downto 0 do
if w1<w2 then w1:=w1+b*
else w2:=w2+b*;
chlmin:=abs(w1-w2);
end;
{--------------------------------------------------}
{------------------------------------------------------}
procedure xuly(m:integer);
var
j:longint;
begin
for j:=m to n-1 do
if s+a[j]<=so then
begin
s:=s+a[j];
if s=so then inc(dem)
else if j<n-1 then xuly(j+1);
s:=s-a[j];
end;
end;
{------------------------------------------}
begin
nhap;
s:=0;
dem:=0;
xeptagdan;
chenhlechmin;
so:=(tong-chlmin)div 2;
xuly(0);
writeln('Ket qua');
writeln(chlmin,'  ',dem);
readln;
end.

input output mình quên câu lệnh r, chịu khó nhập tay nhé!

Bài này là quy hoạch động thuần túy mà. Chính xác là đề kiểm tra lần 2 môn Phân tích và thiết kế thuật toán của khoa CS.
Mà đề ra không chỉ 32 đâu. 100 cơ.

[QUOTE=anonymous;18931]Sau khi xem qua một số bài tập thuật toán được post trên forum của trường UIT, mình thấy trình độ các bạn còn non kém quá. Không biết UIT các bạn có nhân tài thuật toán nào không. Nhân đây, mình “mạn phép” post 1 bài sau đây. Hi vọng UIT có người giải được.
[/QUOTE]

Đây là bài tập cơ bản, nếu bạn gọi đây là 1 bài để thử nhân tài thì trình bạn còn non lắm. Thân
Độ phức tạp bài này là O(m * 2^m ), với m = n / 2
Các kỹ thuật sử dụng: QHĐ trạng thái & tìm kiếm nhị phân

Mình chỉ giải bài này với 1 đk: Hãy là quân tử đứng trong sáng. Mình không biết bạn là ai, tên gì, ở đâu. Và bạn đã làm được bài này chưa ? ;))

(bài này trong đk bình thường code 1h là maximum, trong đk phòng thi Olympic code 30’)
Như trường ĐHKHTN ấy, giao hữu rất là thân thiện, mặc dù đội KHTN rất là mạnh nhưng 2 bên đều giao hữu thân thiện, biết nhau, chứ ko phải cái loại chui vào trường khác post bài thách thức nhau như vậy.

chậc , chậc, khổ thân thằng bé , chui vào ổ kiến lửa rồi :slight_smile:

Chào các bạn,
Mình có 3 vấn đề muốn chia sẻ :

  1. Cách forum UIT của các bạn làm việc rất là không minh bạch, tài khoản Anonymous mình dùng để mở topic này đã bị khóa chức năng post bài nên bất đắc dĩ mình phải đăng ký tài khoản Anonymous1 để trao đổi với các bạn (tức là Anonymous1 = Anonymous).
  2. Mình rất hoan nghênh tinh thần bạn 11520673 - Lâm Thị Mỹ Tú là người đầu tiên đã đưa ra đáp án. Bạn đã sử dụng thuật toán tham lam và đệ quy nhưng :
    a. Thuật toán tham lam trong trường hợp này là không chính xác.
    b. Dùng đệ quy trong bài này sẽ bị quá thời gian cho phép.
    Xem ra các bạn vẫn chưa đủ “trình độ” để accept bài này, các bạn code xong thì gửi lên VOJ, nếu accept thì xem như đã làm xong.
  3. Đối với các bạn thích gạch đá, mình không hiểu tại sao các bạn không xem đó là một thách thức và nghĩ ra cách giải quyết mà thay vào đó các bạn lại nói những điều vô ích, thiếu tính xây dựng. UIT đã chấp nhận bước ra sân chơi lớn đồng nghĩa với việc phải đón nhận thách thức mới, từ chối giải quyết thách thức các bạn đã từ chối tiến bộ.

@Bạn Châu : đây là proof

Khi nào bạn Accept hãy nói chuyện với mình.
Đôi lời gửi UITers.

Untitled.png

Untitled.png

[QUOTE=anonymous1;19017]
@Bạn Châu : đây là proof

Khi nào bạn Accept hãy nói chuyện với mình.
Đôi lời gửi UITers.[/QUOTE]

Cái này cũng gọi là proof hả bạn.

[QUOTE=anonymous1;19017]Chào các bạn,
Mình có 3 vấn đề muốn chia sẻ :

  1. Cách forum UIT của các bạn làm việc rất là không minh bạch, tài khoản Anonymous mình dùng để mở topic này đã bị khóa chức năng post bài nên bất đắc dĩ mình phải đăng ký tài khoản Anonymous1 để trao đổi với các bạn (tức là Anonymous1 = Anonymous).
  2. Mình rất hoan nghênh tinh thần bạn 11520673 - Lâm Thị Mỹ Tú là người đầu tiên đã đưa ra đáp án. Bạn đã sử dụng thuật toán tham lam và đệ quy nhưng :
    a. Thuật toán tham lam trong trường hợp này là không chính xác.
    b. Dùng đệ quy trong bài này sẽ bị quá thời gian cho phép.
    Xem ra các bạn vẫn chưa đủ “trình độ” để accept bài này, các bạn code xong thì gửi lên VOJ, nếu accept thì xem như đã làm xong.
  3. Đối với các bạn thích gạch đá, mình không hiểu tại sao các bạn không xem đó là một thách thức và nghĩ ra cách giải quyết mà thay vào đó các bạn lại nói những điều vô ích, thiếu tính xây dựng. UIT đã chấp nhận bước ra sân chơi lớn đồng nghĩa với việc phải đón nhận thách thức mới, từ chối giải quyết thách thức các bạn đã từ chối tiến bộ.

@Bạn Châu : đây là proof

Khi nào bạn Accept hãy nói chuyện với mình.
Đôi lời gửi UITers.[/QUOTE]
xin lỗi không biết trình độ bạn đến đâu nhưng kiểu nói người khác còn non thì hình như hơi tự đại quá mức :slight_smile:
bạn code giỏi vậy cho mình hỏi vài câu nhé ( dù hơi gà )
1.trình biên dịch làm gì đầu tiên khi bắt đấu biên dịch.
2.trong quá trình biên dịch, trình biên dịch sẽ thêm vào cái gì và trong khi thực thi gọi các thư viện, chúng sẽ được “nhét” vào đâu
mình còn gà lắm mong bạn thông cảm :slight_smile:

[QUOTE=anonymous1;19017]Chào các bạn,
Mình có 3 vấn đề muốn chia sẻ :

  1. Cách forum UIT của các bạn làm việc rất là không minh bạch, tài khoản Anonymous mình dùng để mở topic này đã bị khóa chức năng post bài nên bất đắc dĩ mình phải đăng ký tài khoản Anonymous1 để trao đổi với các bạn (tức là Anonymous1 = Anonymous).
  2. Mình rất hoan nghênh tinh thần bạn 11520673 - Lâm Thị Mỹ Tú là người đầu tiên đã đưa ra đáp án. Bạn đã sử dụng thuật toán tham lam và đệ quy nhưng :
    a. Thuật toán tham lam trong trường hợp này là không chính xác.
    b. Dùng đệ quy trong bài này sẽ bị quá thời gian cho phép.
    Xem ra các bạn vẫn chưa đủ “trình độ” để accept bài này, các bạn code xong thì gửi lên VOJ, nếu accept thì xem như đã làm xong.
  3. Đối với các bạn thích gạch đá, mình không hiểu tại sao các bạn không xem đó là một thách thức và nghĩ ra cách giải quyết mà thay vào đó các bạn lại nói những điều vô ích, thiếu tính xây dựng. UIT đã chấp nhận bước ra sân chơi lớn đồng nghĩa với việc phải đón nhận thách thức mới, từ chối giải quyết thách thức các bạn đã từ chối tiến bộ.

@Bạn Châu : đây là proof

Khi nào bạn Accept hãy nói chuyện với mình.
Đôi lời gửi UITers.[/QUOTE]
sang nhà người ta thì (Đối với người lịch sự, có học) đầu tiên là phải giới thiệu đôi lời về bản thân mình đã chứ. rồi có thách thức cũng chẳng sao. ít ra cũng phải cho cái thông tin tên gì, học trường nào!
tự nhiên sang chưa nói gì đã phán câu như thánh sống ~> “Sau khi xem qua một số bài tập thuật toán được post trên forum của trường UIT, mình thấy trình độ các bạn còn non kém quá”
thử hỏi với forum trường bạn thì có gạch đá không? bạn là tài khoản ngoài trường thì không xem hết được các box trong forum này đâu.

Sao nhiều người thích nói lý với “ếch ngồi đáy giếng” nhỉ?Hắn ta còn không truy nhập vào những phần chính, để biết là mình vào đó đọc không được mà vẫn phán bừa như thế thì đủ hiểu rồi…