thảo luận Leetcode + Codeforces, Competitive programming contest. Đường tới Guardian + Candidate Master.

  • Người tạo chủ đề Người tạo chủ đề freedom.9
  • Ngày bắt đầu Ngày bắt đầu
Sau cái contest hôm nay nhận ra coding skill vẫn còn yếu, Q1 và Q2 tốn hơn 1h để code @@", mặc dù đã có ý tưởng trong đầu rồi
 
Sau cái contest hôm nay nhận ra coding skill vẫn còn yếu, Q1 và Q2 tốn hơn 1h để code @@", mặc dù đã có ý tưởng trong đầu rồi
Thế nên ngta qua Python hết đấy bác :> nma em vẫn ở lại với Java do nó ngon, dù code dài tí nma lỗi runtime dễ debug
zFNuZTA.png
zFNuZTA.png
zFNuZTA.png
 
Q4 mình ý tưởng đúng rồi mà ăn cái case sai lỏ dái thế nhỉ, cay quá.
Mình cũng reverse bằng x - y từng case hoặc halving mà trong contest lại code ko ra. Sida thật.
Lần sau kinh nghiệm là cứ if else nhiệt tình cho đỡ rối
 
Python:
class Solution:
    def minMoves(self, sx: int, sy: int, tx: int, ty: int) -> int:
        if tx < sx or ty < sy:
            return -1

        if sx == tx and sy == ty:
            return 0
            
        queue = deque()
        queue.append((0, tx, ty))
        visited = set()
        visited.add((tx, ty))

        while queue:
            moves, x, y = queue.popleft()

            if x == sx and y == sy:
                return moves
            
            if x < sx or y < sy:
                continue
          
            if x > y:
                if x >= 2*y:
                    if x % 2 == 0 and not (x//2, y) in visited:
                        visited.add((x//2, y))
                        queue.append((moves + 1, x//2, y))
                else:
                    nextX, nextY = x - y, y
                    if (nextX, nextY) not in visited:
                        visited.add((nextX, nextY))
                        queue.append((moves + 1, nextX, nextY))


            elif y > x:
                if y >= 2*x:
                    if y % 2 == 0 and not (x, y//2) in visited:
                        visited.add( (x, y//2))
                        queue.append((moves + 1, x, y//2))
                else:
                    nextX, nextY = x, y - x
                    if (nextX, nextY) not in visited:
                        visited.add((nextX, nextY))
                        queue.append((moves + 1, nextX, nextY))

            else:
                if (0, x) not in visited:
                    visited.add((moves + 1, 0 , x))
                    queue.append((moves + 1, 0, x))
                
                if (x, 0) not in visited:
                    visited.add((moves + 1, x , 0))
                    queue.append((moves + 1, x, 0))


        return -1
Ko hiểu sao trong contest ko viết code đúng
 
Cuối cùng cũng mò lên lại 2k, qua CF luyện tiếp vậy :ah: mấy contests gần đây rất gần với AK rồi mà hơi panic tí thôi, hẹn ae tuần sau gỡ tiếp
 
Đúng rồi mà chắc mình ko join được, tranh thủ cuối tuần trông con cho vợ =(( luyện daily thôi
Giờ mới nhớ ra Q2 hôm nay còn ăn 2 cái bug nhảm vì ngu đi dùng SortedList thay vì dùng heap, thi thố nhiều lỗi quá
Em cũng dùng SortedSet bác, không rõ bác bug vì lý do gì đấy ạ??
 

Thống kê chủ đề

Ngày tạo
freedom.9,
Người trả lời cuối
deple20k,
Trả lời
1.686
Lượt xem
107.080
Quay lại
Lên đầu trang