BCACM11G - Dãy con tăng dần tự nhiên bậc K

Link Sub: http://www.spoj.com/PTIT/problems/BCACM11G/
Người Gửi: Dương Lee

  • Problem:

Cho dãy gồm N số phân biệt AN = {a1, a2, .., aN } và số tự nhiên K (K<=N<=100). Ta gọi một dãy con tăng dần bậc K của dãy số AN là một dãy các số gồm K phần tử trong dãy đó thỏa mãn tính chất tăng dần. Bài toán được đặt ra là hãy tìm số các dãy con tăng dần bậc K của dãy số AN.
Input
Dòng đầu tiên ghi số bộ test, không lớn hơn 100. Mỗi bộ test được xây dựng theo khuôn dạng sau:
  • Dòng đầu tiên ghi lại hai số N và K tương ứng với số phần tử của dãy số và bậc của dãy con.
  • Dòng kế tiếp ghi lại N số của dãy số AN, các số trong dãy không lớn hơn 100. 
Output
Với mỗi bộ test, in ra màn hình số các dãy con tăng dần tự nhiên bậc K của dãy số AN
Example:
Input
2
5 3
2 5 15 10 20
5 3
2 20 10 15 5
Output:
7
1

  • Solution:

* Sử dụng đệ quy quay lui: - Đệ quy từng phần tử thứ i của mảng DQ[k]; - Mỗi phần tử đệ quy tiếp tục vào các giá trị có thể (> phần tử trước nó: DQ[i-1]); - Quay lui từng phần tử sau khi đệ quy hết mảng; - Kiểm tra mảng tăng. * Giảm time: - Mỗi phần tử xét các giá trị có thể của nó với điều kiện giá trị xét vào phải > giá trị trước; - Mảng đến được i==k+1 (+ đk_STOP là số phần tử còn lại không đủ để đệ quy tiếp) thì +1;

  • Code:

C++:



JAVA:


Share this

Related Posts

Previous
Next Post »