PDA

View Full Version : Cần giải giùm bài: dãy đối xứng



tuansando
07-01-2008, 16:15
Dãy dc gọi là đối xứng nếu viết các phần tử của nó theo thứ tự ngơuwojc lại thì vẫn dc chính nó. Dãy dc gọi là khả đối xứng nếu đổi chổ các phần tử của nó thì dc dãy đối xứng. Cho 1 dãy so nguyen, kiểm tra xem nó có khả năng đối xứng ko? nếu có biến đổi nó để dc 1 dãy đối xứng.
-Em còn gà lắm. Các anh cho giùm em cái code.
Thanks

mr_invincible
08-01-2008, 10:15
Bài này đã có trong này rồi, nhưng hình như chưa có code. Theo tôi nghĩ, cách đơn giản nhất bạn phải thử tất cả các cách đổi chỗ rồi kiểm tra xem đó có phải là dãy đối xứng không. Có thể dùng quay lui vét cạn để tìm tất cả các hoán vị của dãy số. Nếu bạn chưa học đến thì phải dùng cách khác

thuonghcm
08-01-2008, 19:40
cách này không biet the nao?
nếu dãy có n phan tu(n chẳn)->phải có 2 ptu là a[i], 2 ptu là a[i+1] .....
nếu n lẻ thì sẽ có 1 a[k] nào đó là 1 và chỉ 1, còn tất cả cac p tu phải là m (~ n) chẳn giống như trên.

tuansando
08-01-2008, 20:28
em chua hiểu kĩ lắm, các anh hướng dẫn kĩ thêm dc hok? Thanks

mr_invincible
09-01-2008, 20:18
Tức là đánh dấu.
Dãy chẵn phần tử: duyệt từ đầu dãy đến cuối dãy, nếu mỗi phần tử đều xuất hiện trong dãy một số chẵn lần thì có thể đổi chỗ các phần tử để được dãy đối xứng.
Dãy lẻ phần tử: nếu phần tử đứng giữa xuất hiện lẻ lần, các phần tử còn lại xuất hiện chẵn lần thì có thể đổi chỗ các phần tử để được dãy đối xứng