14.A4. CTDL> bài Độ dài tối thiểu
Độ dài tối thiểu
Trong một buổi họp tại văn phòng, FullHouse Dev được giao một bài toán thú vị về xử lý chuỗi. Họ cần tìm ra độ dài ngắn nhất của một chuỗi "tốt" thỏa mãn một số điều kiện đặc biệt.
Bài toán
FullHouse Dev cần tìm một chuỗi được gọi là "tốt" nếu nó thỏa mãn các điều kiện sau:
- Chuỗi chỉ chứa các ký tự từ 'a' đến 'z' (theo bảng mã ASCII)
- Nhiệm vụ là tìm ra độ dài ngắn nhất của một chuỗi tốt có ít nhất \(N\) chuỗi con khác nhau.
Lưu ý:
- Chuỗi con là một dãy ký tự liên tiếp trong chuỗi gốc. Ví dụ: "hacker" là chuỗi con của "hackerwhitehat", nhưng "hackr" thì không.
- Hai chuỗi con được coi là khác nhau nếu:
- Chúng có độ dài khác nhau
- Nếu chúng có cùng độ dài, tồn tại một vị trí \(i\) mà tại đó các ký tự khác nhau
INPUT FORMAT:
- Dòng đầu tiên chứa số nguyên \(T\) - số lượng test case
- Mỗi test case gồm một dòng chứa số nguyên \(N\)
OUTPUT FORMAT:
- Với mỗi test case, in ra độ dài tối thiểu của chuỗi tốt có ít nhất \(N\) chuỗi con khác nhau
Ràng buộc:
- \(1 \leq T \leq 10^5\)
- \(1 \leq N \leq 10^9\)
Ví dụ
INPUT
3
5
8
1000000000
OUTPUT
3
4
63244
Giải thích
Ở test case đầu tiên, \(N = 5\), một chuỗi tốt có thể là "abc". Các chuỗi con khác nhau của "abc" là: "a", "b", "c", "ab", "bc", "abc". Có thể chứng minh không có chuỗi tốt nào có độ dài nhỏ hơn 3 mà có ít nhất 5 chuỗi con khác nhau.
Ở test case thứ hai, \(N = 8\), một chuỗi tốt có thể là "abcd". Các chuỗi con khác nhau của "abcd" là: "a", "b", "c", "d", "ab", "bc", "cd", "abc", "bcd", "abcd". Có thể chứng minh không có chuỗi tốt nào có độ dài nhỏ hơn 4 mà có ít nhất 8 chuỗi con khác nhau.
Comments