Hello Codeforces,
I am encountering a problem that I am unable to solve:
I need to print the order from fold l to r of folding up and down a piece of paper after ( n ) times of performing two folds alternately left and right. Please use 'D' for Down and 'U' for Up. Input: n, l and r. For example: Input: 2 1 3 Output: DDU
Note that folding left means folding the right edge over the left edge, and folding right means folding the left edge over the right edge.
I have a rough idea of using a deque to store the order, but I can't figure out the exact algorithm for this problem.
Can you provide some hints?
Thank you!
Edit: Also 1<=n<=60, 1<=l<r<=2^n and r-l<=10^6
Auto comment: topic has been updated by hanoi11minh_nh (previous revision, new revision, compare).
Bài nào đây, dịch ra tiếng việt hộ t cái :)))
của thầy Lê Minh Hoàng à
Bạn nghĩ thử dùng đệ quy đi, độ phức tạp n * (r — l)
gợi ý nhé, dequy(i, k, riel) là trạng thái của nếp gấp thứ i, trên một tờ giấy gấp k lần, với lần gấp đầu tiêu là về phía bên riel (riel là true nếu gấp bên trái đầu tiên, là false nếu gấp bên phải). Hàm dequy(i, k, riel) trả về hai giá trị, true nếu như nếp gấp bị lõm, false nếu nó lồi
nếu dựng đc hàm dequy thì mình chỉ cần chạy for i từ l -> r rồi in ra dequy(i, n, true)