trang chủ / đề bài / magcalend

Lịch kỳ diệu

Đề bài

Mô tả

Alice dùng một cuốn lịch kỳ lạ: một tuần trong cuốn lịch này không nhất thiết có 7 ngày. Cô được chọn một số nguyên k bất kỳ thoả 1≤k≤r và quy ước rằng một tuần có k ngày.

Với quy ước đó, cuốn lịch là một bảng ô vuông có đúng k cột. Các ngày được viết lần lượt từ trái sang phải trong một tuần; khi đã viết đến ô cuối cùng bên phải của một tuần thì ngày kế tiếp được viết vào ô trái nhất của hàng ngay bên dưới.

Alice chọn một ngày bất kỳ trong tuần làm ngày bắt đầu, rồi tô n ngày liên tiếp kể từ ngày đó. Cách tô chỉ được chấp nhận nếu tất cả các ô đã tô liên thông theo cạnh, nghĩa là từ một ô tô bất kỳ luôn đi được tới ô tô bất kỳ khác qua một dãy các ô đã tô mà hai ô liên tiếp trong dãy chung cạnh nhau.

Hai cách tô cho cùng một hình dạng nếu có thể tịnh tiến (song song với các cạnh của bảng) để chúng trùng khít lên nhau. Hãy đếm số hình dạng khác nhau thu được khi Alice xét mọi giá trị k hợp lệ và mọi ngày bắt đầu.

Dữ liệu vào

  • Dòng đầu chứa số nguyên t là số lượng bộ dữ liệu.
  • t dòng tiếp theo, mỗi dòng chứa hai số nguyên n và r.

Dữ liệu ra

Với mỗi bộ dữ liệu, in ra trên một dòng số hình dạng khác nhau. Kết quả có thể vượt quá phạm vi số nguyên 32 bit, hãy dùng kiểu số nguyên ít nhất 64 bit.

Ràng buộc

  • 1≤t≤1000
  • 1≤n≤109
  • 1≤r≤109

Ví dụ

Input Output Giải thích
5
3 4
3 2
3 1
13 7
1010000 9999999
4
3
1
28
510049495001
Bộ thứ nhất: n=3, k chọn được là 1,2,3,4. Với k=1 ta có 1 hình (cột dọc 3 ô), với k=2 có 2 hình, còn k=3 và k=4 đều chỉ cho đúng một hình là dải ngang 3 ô. Tổng cộng 1+2+1=4 hình. Bộ thứ ba: r=1 nên chỉ có cột dọc 3 ô.
6
1 1
1 2
2 1
2 2
1 1000000000
1000000000 1
1
1
1
2
1
1
Khi n=1 mọi cách tô đều là một ô đơn lẻ nên đáp án luôn bằng 1, dù r lớn đến đâu. Khi r=1 chỉ có tuần một ngày, cho đúng một cột dọc n ô. Bộ n=2, r=2: k=1 cho cột dọc 2 ô, k=2 cho dải ngang 2 ô.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0