Trả lời: Gấp tiền_Cây nhị phân 12 năm, 5 tháng trước
(+0)
em nghĩ bài này có công thức nhưng khác của anh Vũ a[i]= daoxau(a[i-1]) D a[i-1];
trong đó đảo xâu tức là làm ngược lài U->D
d->u.
Vì gấp đôi nên no có tính đối xứng mà
Trả lời: Gấp tiền_Cây nhị phân 12 năm, 5 tháng trước
(+0)
Sai rồi em,tuy là nó có tính đối xứng nhưng không thể làm thế được.
Thế này nhé:
Giờ cái xâu a[n-1] nó có dạng
a b c d e f g h i j k ...
Giả sử thế này đi
Thì sau lần gấp thứ n, nó sẽ thêm vào các khoảng giữa a b c d e f... Chứ nó không thêm vào sau.Nên cái a[i-1]Ddao(a[i-1]) là sai.Vì những ký tự thêm vào có thể chứng minh là không liên quan gì đến những ký tự trước cả
Thực tế ở lần gấp thứ n nó sẽ như thế này.
U a D b U c D d U e D f ...
Và cũng hoàn toàn có thể chứng minh được,là cái dãy mới này hoàn toàn đối xứng đúng như tính chất ban đầu.
Mà nói đối xứng cũng không đúng vì hai điểm đối xứng nhau qua trung điểm thì nó có giá trị khác nhau
Đã lưu IP
There are times when you can't save others with just love and kindness.
Trả lời: Gấp tiền_Cây nhị phân 12 năm, 5 tháng trước
(+0)
Tớ chả hiểu bài này cây nhị phân kiểu gì, code có 1 mẩu
Code:
Re := 0;
for i := (n - 1)downto1dobegin
g := 1shl i;
if g = k thenbreakelseif g < k thenbegin
k := k - g;
re := 0;
endelse re:= 1;
end;
if re = 0thenWriteLn(fo, 'D')elseWriteLn(fo, 'U');