[Buổi 14][Chuyên đề Tham lam & chiến lược tìm kiếm][HW] Bài 2: Truy vấn thứ tự loại vòng tròn


LÀM BÀI

Points: 100
Time limit: 2.0s
Memory limit: 256M

Author:
Problem types

Truy vấn thứ tự loại vòng tròn

Bối cảnh và bài toán

Có n vị trí 1..n trên vòng tròn. Ở mỗi lượt quét, cứ bỏ một vị trí còn sống rồi giữ một vị trí theo quy tắc loại mọi vị trí thứ hai như bài Josephus chuẩn. Với mỗi truy vấn (n,k), cần biết vị trí bị loại thứ k, trong khi n có thể tới 10^9.

Yêu cầu

Trả lời vị trí bị loại thứ k cho từng truy vấn.

Input

  • Dòng 1: số truy vấn q.
  • Mỗi dòng tiếp: n k.

Output

Mỗi truy vấn in một đáp án.

Ràng buộc

  • 1 <= q <= 10^5
  • 1 <= k <= n <= 10^9

Chấm điểm

Subtask Điểm Điều kiện Official tests
S1 20% n, q ≤ 10^3 01–04
S2 30% n ≤ 10^6, q ≤ 2 * 10^4 05–10
S3 50% Không có ràng buộc bổ sung 11–20

Ví dụ 1

Input

4
7 1
7 3
2 2
1337 1313

Output

2
6
1
1107

Giải thích. Kết quả theo thứ tự loại every-second của từng kích thước vòng.

Ví dụ 2

Input

3
10 1
10 5
10 6

Output

2
10
3

Giải thích. Năm người đầu tiên bị loại là các số chẵn 2,4,6,8,10; sau đó bài toán thu nhỏ trên các số lẻ.

Thông tin bài tập

Thuộc tính Giá trị
Mã bài DSA-M04-B14-HW02
Buổi B14
Loại bài HOMEWORK
Mức độ khó Khó (Hard)
Thời gian làm bài khuyến nghị 75 phút
Time limit 2 giây
Memory limit 256 MB
Tổng điểm 100
Chuẩn ngôn ngữ tham chiếu C++11 trở lên

Nguồn: Phỏng theo CSES Problem Set — Josephus Queries (Task 2164).

Tham khảo: https://cses.fi/problemset/task/2164/


Comments

There are no comments at the moment.

Zalo