Olympic Sinh Viên 2022 - Không chuyên - Cửa hàng năng lượng thông minh

Xem dạng PDF

Gửi bài giải

Điểm: 0,10 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 512M

Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Trong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài


Bình luận

Hãy đọc nội quy trước khi bình luận.



  • 0
    vipgun98s2  đã bình luận lúc 13, Tháng 10, 2023, 14:02

    test 9 với test 86 có gì đặc biệt vậy nhỉ, mình dùng BIT mà sai 2 test


    • 2
      DinhVantung0611  đã bình luận lúc 29, Tháng 4, 2024, 6:02 sửa 2

      Bro không cần dùng bit đâu. thiết lập 3 cái vector lưu các số là luỹ thừa của 2, 3, 5 sau đó tìm kiếm nhị phân thôi. Nếu số đó có trong 1 trong 3 vector kia thì mình lưu lại. Sau đấy với mỗi cặp [low, hight] gì đó mình dùng lowerbound với upperbound để tìm 2 chốt đầu và cuối lấy cuối - đầu +1 là ra số pin

      Đề cho pin <= 1e9 nên xây dựng 3 vector kia vừa đủ thôi


      • 1
        huyauto  đã bình luận lúc 29, Tháng 4, 2024, 10:57

        Mình cũng làm y chang mà có 94 test :((


        • 1
          DinhVantung0611  đã bình luận lúc 29, Tháng 4, 2024, 11:59

          Mình thấy cách bạn thiết lập 3 cái vector kia nó nó bủh quá. dùng hàm log gì đó là làm việc với số thực (mà số thực có thời gian xử lý rất lâu và không chính xác). Bạn chuyển qua cách lấy 1 biến tạm = 1 xong cứ * 2 lên * 2 lên để có được luỹ thừa cơ số 2. 3, 5 tương tự


          • 1
            huyauto  đã bình luận lúc 29, Tháng 4, 2024, 12:06

            thanks fen AC rồi kk