Quy hoạch động
Giai thừa chia dư (quy hoạch động)
Nộp bàiPoint: 1
Đề bài rất đơn giản, bạn hãy tính N! chia dư cho (10^9 + 7).
Đầu vào:
Dòng 1 là số bộ test T
T dòng tiếp theo mỗi dòng là 1 số nguyên không âm N
Ràng buộc:
1<=T<=10000
0<=N<=10^6
Đầu ra: Đưa ra kết quả của mỗi test trên 1 dòng
Input:
5
1
2
3
4
5
Output:
1
2
6
24
120
Fibonacci (quy hoạch động)
Nộp bàiPoint: 1
Cho dãy số Fibonacci với F[0] = 0, F[1] = 1, F[n] = F[n - 1] + F[n - 2) với n>= 2. Hãy tính F[n) chia dư cho 10^9 + 7.
Đầu vào:
Dòng 1 là số bộ test T
T dòng tiếp theo mỗi dòng là 1 số nguyên không âm N
Ràng buộc:
1<=T<=10000
0<=N<=10^6
Đầu ra: Đưa ra kết quả của mỗi test trên 1 dòng
Input:
5
1
2
3
4
5
Output:
1
2
3
5
8
Tribonacci (quy hoạch động)
Nộp bàiPoint: 1
Cho dãy số Tribonacci với F[0] = 0, F[1] = 0, F[2] = 1, F[n) = F[n - 1] + F[n - 2] + F[n - 3] với n >= 3. Hãy tính F[n] chia dư cho 10^9 + 7.
--
Đầu vào:
Dòng 1 là số bộ test T
T dòng tiếp theo mỗi dòng là một giá trị cần tính
Ràng buộc:
1<=T<=10000
1<=N<=10^6
Đầu ra: Đưa ra kết quả của mỗi test trên 1 dòng
Input:
5
2
4
6
8
10
Output:
1
2
7
24
81
Prime 2 (quy hoạch động)
Nộp bàiPoint: 1
Cho 2 số nguyên L, R, hãy đếm xem trong đoạn từ L tới R có bao nhiêu số nguyên tố.
Đầu vào:
• Đòng 1 là số bộ test T
• T dòng tiếp theo mỗi dòng là 1 số nguyên không âm N
Ràng buộc:
1<=T<=10000
0<=N<=10^6
Đầu ra: Đưa ra kết quả của mỗi test trên 1 dòng
Input:
5
3 19
4 65
4 44
1 17
1 7
Output:
7
16
12
7
4
Prime 3 (quy hoạch động)
Nộp bàiPoint: 1
Cho số nguyên dương N, hãy tính tích các số nguyên tố trong đoạn từ 0 đến N.
Đầu vào:
Dòng 1 là số bộ test T
T dòng tiếp theo mỗi dòng là 1 số nguyên không âm N
Ràng buộc:
1<=T<=10000
0<=N<=10^6
Đầu ra: Đưa ra kết quả của mỗi test trên 1 dòng, vì kết quả quá lớn nên hãy chia dư cho 10^9 + 7.
Input:
5
20
16
10
22
29
Output:
9699690
30030
210
9699690
469693188
Dãy con tăng dài nhất (quy hoạch động)
Nộp bàiPoint: 1
Cho mảng số nguyên A[] gồm N phần từ, hãy tìm dãy con (không nhất thiết các phần tử phải liên tiếp) tăng chặt dài nhất của mảng A[].
Đầu vào: Dòng đầu tiên là N; Dòng thứ 2 gồm N phần tử của mảng A
Ràng buộc: 1<=N<=1000; 1<=A[i]<=1000;
Đầu ra: In ra độ dài của dãy con tăng dài nhất
Input:
14
128 104 53 876 660 961 754 775 290 231 224 915 392 994
Output:
6
Tổng lớn nhất của dãy con tăng dần
Nộp bàiPoint: 1
Cho dãy số A[] gồm N số. Nhiệm vụ của bạn là tìm tổng lớn nhất của dãy con được sắp theo thứ tự tăng dần của dãy A. Ví dụ với dãy A[] = (1, 101, 2, 3, 100, 4, 5} ta có kết quả là 106 = 1 + 2 + 3 + 100. Với dãy A[] = (10, 7, 5} ta có kết quả là 10. Với dãy A[] = {1, 2, 3, 5} ta có kết quả là 11.
Đầu vào: Dòng đầu tiên đưa vào N là số phần tử của dãy A[]; Dòng tiếp theo đưa vào N số A[i]; các số được viết cách nhau một vài khoảng trồng.
Ràng buộc: 1≤N≤1000; 0≤A[i]≤1000.
Đầu ra: Đưa ra kết quả của bài toán trên 1 dòng
Input:
8
2 12 3 15 3 16 12 4
Output:
45
Số bước ít nhất (quy hoạch động)
Nộp bàiPoint: 1
Cho mảng A[] gồm N số nguyên. Nhiệm vụ của bạn là sắp xếp lại mảng số với số lượng bước là ít nhất. Tại mỗi bước, bạn chỉ được phép chèn phần tử bất kỳ của mảng vào vị trí bất kỳ trong mảng. Ví dụ A[] = (2, 3, 5, 1, 4, 7, 6 )sẽ cho ta số phép chèn ít nhất là 3 bằng cách lấy số 1 chèn trước số 2, lấy số 4 chèn trước số 5, lấy số 6 chèn trước số 7 ta nhận được mảng được sắp.
Đầu vào: Dòng đầu tiên là N; Dòng thứ 2 gồm N phần tử của màng A;
Ràng buộc: 1<=N<=1000; 1<=A[i]<=1000
Đầu ra: Đưa ra kết quả trên 1 dòng.
Input 01:
8
2 12 3 15 3 16 12 4
Output 01:
4
Input 02:
13
143 340 571 845 211 228 274 443 666 594 491 814 24
Output 02:
6
Tổng không liền kề (quy hoạch động)
Nộp bàiPoint: 1
Cho mảng A[] gồm N phần tử, nhiệm vụ của bạn là tính tổng lớn nhất của dãy con trong mảng với một điều kiện đó là trong dãy con này không được có 2 phần tử năm liền kề nhau.
Đầu vào: Dòng đầu tiên là N là số lượng phần tử trong mảng: Dòng thứ 2 là A[i]
Ràng buộc: 1<=N<=10^6; 1<=A[i]<=1000;
Đầu ra: In ra kết quả của bài toán
Input:
7
1 1 1 4 1 1 100
Output:
105
Input:
7
314 514 148 451 896 589 296
Output:
1706
Xâu con chung dài nhất
Nộp bàiPoint: 1
Cho 2 xâu kí tự S và T, hãy tìm xâu con chung dài nhất của S và T. Các kí tự của xâu con không nhất thiết phải liền kề nhau.
Đầu vào: Dòng đầu tiên là xâu S; Dòng thứ 2 là xâu T;
Ràng buộc: S và T chỉ gồm các chữ cái in hoa và có độ dài không quá 1000
Đầu ra: In ra độ dài xâu con chung dài nhất của S và T
Input:
ZHFTDFHF
TFISHROV
Output:
3
Giải thích: Đó chính là xâu TFH