Thuật toán quay lui
Bài toán N quân hậu 1 (quay lui, quay lui - nhánh cận)
Nộp bàiPoint: 1
Cho một bàn cờ vua có kích thước N * N. Hãy đếm xem có bao nhiêu cách xếp các quân hậu lên bàn cờ để chúng không ăn nhau?
Đầu vào: Số nguyên N
Ràng buộc: 2 <= N <= 12
Đầu ra: In ra số lượng cách xếp các quân hậu
Input:
8
Output:
92
N Queen 3 (quay lui)
Nộp bàiPoint: 1
Vẫn là bài toán N quân hậu, nhiệm vụ của bạn là hãy in ra các cách xếp quân hậu trên bàn cờ cỡ N * N. Trong đó với mỗi ô trên bàn cờ có quân hậu chiếm chỗ sẽ đại diện là chữ Q, ngược lại ô trống sẽ là dấu '.'
Đầu vào: Dòng duy nhất chứa N là kích cỡ bàn cờ
Ràng buộc: 1<=N<=10
Đầu ra: In ra các cách xếp quân hậu, mỗi cách xếp cách nhau một dòng trống
Input:
4
Output:
.Q..
...Q
Q...
..Q.
..Q.
Q...
...Q
.Q..
Dãy con có tổng lẻ (quay lui)
Nộp bàiPoint: 1
Cho mảng A[] gồm N phần tử, liệt kê các tập con (giữ đúng thứ tự trước sau) của mảng A[] có tổng các phần tử là số lẻ, mỗi phần tử chỉ được lấy 1 lần. Chú ý nếu 2 tập hợp chứa 2 phần tử có giá giống nhau nhưng ở vị trí khác nhau thì được tính là 2 tập hợp khác nhau.
Đầu vào: Dòng 1 là N là số lượng phần tử trong mảng;
Dòng 2 gồm N số trong mảng A[]
Ràng buộc: 2 <= N <= 15; 1 <= A(i) <= 1000
Đầu ra: In ra các tập con thỏa mãn theo thứ tự từ điển tăng dần, nếu không tồn tại dãy con in ra NOT FOUND
Input 01:
4
1 2 3 3
Output 01:
1
1 2
1 2 3 3
1 3 3
2 3
2 3
3
3
Input 02:
6
2 2 2 2 2 2
Output 02:
NOT FOUND
Tổ hợp lặp (quay lui)
Nộp bàiPoint: 1
Cho xâu kí tự S gồm N chữ cái khác nhau, hãy liệt kê tổ hợp lặp chập K của N kí tự trên và in ra theo thứ tự từ điển tăng dần.
Đầu vào: Dòng 1 chứa 2 số nguyên N và K; Dòng 2 chứa xâu S
Ràng buộc: 1<=K<=N<=15
Đầu ra: In ra đáp án của bài toán
Input:
4 2
ABCD
Output:
AA
AB
AC
AD
BB
BC
BD
CC
CD
DD
Letter Case (quay lui)
Nộp bàiPoint: 1
Cho xâu kí tự S chỉ bao gồm chữ cái và chữ số, bạn có thể thay đổi các chữ cái trong xâu thành kiểu in hoa hoặc in thường tương ứng của nó nhưng không được thay đổi vị trí ban đầu. Bạn hãy liệt kê mọi xâu khác nhau có thể tạo thành bằng cách trên và liệt kê theo thứ tự từ điển tăng dần.
Đầu vào: Dòng duy nhất chứa xâu S
Ràng buộc: 1<=len(S)<=12
Đầu ra: In ra đáp án của bài toán
Input:
123Hcn
Output:
123HCN
123HCn
123HcN
123Hcn
123hCN
123hCn
123hcN
123hcn
Mã số máy tính (thuật toán sinh - phương pháp sinh - quay lui)
Nộp bàiPoint: 1
Số lượng máy tính ở các phòng thực hành tăng lên nhanh chóng. Để gán mã cho các máy tính của trường đó người ta sử dụng mã gồm 2*N ký tự, trong đó: N ký tự đầu tiên là hoán vị của N chữ cái in hoa đầu tiên, tính từ A. N ký tự tiếp theo là các ký tự số bất kỳ từ 1 đến N (có thể trùng nhau). Người ta ước tính chỉ cần N = 5 là đủ để gán mã cho toàn bộ máy tính kể cả khi mở rộng quy mô các phòng thực hành. Hãy viết chương trình liệt kê các mã tạo được với giá trị N cho trước.
Đầu vào: Số nguyên dương N
Ràng buộc: 1 < N< 6
Đầu ra: Ghi ra lần lượt các mã khác nhau tạo được theo thứ tự từ điển, mỗi mã ghi trên một dòng
Input:
2
Output:
AB11
AB12
AB21
AB22
BA11
BA12
BA21
BA22
Palindrome Number (quay lui)
Nộp bàiPoint: 1
Cho một số nguyên dương N có không quá 16 chữ số, bạn được phép tách các chữ số của N thành các số nhỏ hơn và phải đảm bảo các số tách được đều là số thuận nghịch, bạn cũng ko được phép đảo thứ tự các chữ số của N. Hãy in ra mọi cách tách như vậy.
Đầu vào: Dòng duy nhất chứa N
Ràng buộc: 1<=N<=10^16
Đầu ra: In ra các cách tách N thành các số nhỏ thuận nghịch nhỏ hơn
Input:
122212
Output:
1 2 2 2 1 2
1 2 2 212
1 2 22 1 2
1 22 2 1 2
1 22 212
1 222 1 2
12221 2
Bài toán N quân hậu 2 (quay lui)
Nộp bàiPoint: 1
Cho một bàn cờ vua 8 x 8, mỗi ô có một giá trị A[i][j] nhất định (0 ≤ A[i][j] ≤ 100) tương ứng với điểm số đạt được nếu như bạn đặt một quân cờ vào đó. Nhiệm vụ của bạn là đặt 8 quân hậu lên bàn cờ, sao cho không có 2 quân nào ăn nhau và số điểm đạt được là lớn nhất.
Gồm 8 dòng, mỗi dòng gồm 8 số tương ứng với các số trên bàn cờ.
Ràng buộc: 1<=A[i][j]<=100
Đầu ra: In ra số điểm đạt được lớn nhất.
Input:
12 29 80 91 56 46 97 13
54 88 27 84 85 9 32 77
48 80 88 74 30 77 38 98
6 82 20 95 7 86 12 43
100 82 15 7 95 9 5 84
51 40 65 98 86 38 30 63
96 78 98 76 33 11 2 58
33 51 35 68 62 87 67 39
Output:
653