Giai thừa chia dư (quy hoạch động)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 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ài
Time limit: 1.0 / Memory limit: 256M

Point: 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ài
Time limit: 1.0 / Memory limit: 256M

Point: 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ài
Time limit: 1.0 / Memory limit: 256M

Point: 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ài
Time limit: 1.0 / Memory limit: 256M

Point: 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ài
Time limit: 1.0 / Memory limit: 256M

Point: 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ài
Time limit: 1.0 / Memory limit: 256M

Point: 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ài
Time limit: 1.0 / Memory limit: 256M

Point: 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ài
Time limit: 1.0 / Memory limit: 256M

Point: 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ài
Time limit: 1.0 / Memory limit: 256M

Point: 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