Untitled

mail@pastecode.io avatar
unknown
plain_text
a year ago
2.1 kB
2
Indexable
Never
#include<iostream>
using namespace std;

int test_case, n, T;
int arr[100][100];
int color[100];
int count1, rs;


void dequy(int ff) {
	for(int i = 0; i < ff; i ++) {
		for(int j = i; j < ff; j ++) {
			if(arr[i][j] && color[i] == color[j]) {
				return;
			}
		}
	}

	if(ff == n) {
		for(int i = 0; i < n; i ++) {
			for(int j = i; j < n; j ++) {
				if(arr[i][j] && color[i] == color[j]) {
					return;
				}
			}
		}
		count1 ++;
		return;
	}

	for(int i = 1; i <= 4; i ++) {
		color[ff] = i;
		dequy(ff+1);
		color[ff] = 0;
	}
}

int main()
{
	//freopen("input.txt", "r", stdin);
	cin >> T;
	for(test_case = 1; test_case <= T; ++test_case) {
		cin >> n;
		for(int i = 0; i < n; i ++) {
			for(int j = 0; j < n; j ++) {
				cin >> arr[i][j];
			}
			color[i] = 0;
		}

		count1 = 0; rs = 0; color[0] = 1;
		dequy(1);
		cout << "Case #" << test_case << endl;
		cout << count1*4 << endl;
	}
	return 0;
}
Đội ngũ thiết kế tại SAMSUNG Electronics xem xét một thiết kế sáng tạo cho một sản phẩm mới.
Hình bên trái là sơ đồ cơ bản và nhóm thiết kế cố gắng phân biệt từng khu vực được đánh dấu bằng chữ cái trong bảng chữ cái với bốn màu.
Khi tiến hành điều này, nhóm thiết kế theo đuổi sự hoàn hảo bằng cách nghiên cứu sự kết hợp của tất cả các màu và chọn một trong số chúng.
Tuy nhiên, họ gặp rắc rối vì họ không biết tổng số trường hợp kết hợp màu sắc.
Do khó khăn này, bạn chuyển đổi sơ đồ cơ bản ở bên trái sang biểu đồ ở trung tâm và sau đó bạn giải quyết vấn đề bằng cách chuyển đổi nó thành ma trận liền kề ở bên phải.
Số ca mắc là 264 ca.
3
4
0 0 0 1
0 0 0 1
0 0 0 1
1 1 1 0
5
0 1 1 1 0
1 0 0 1 1
1 0 0 1 0
1 1 1 0 1
0 1 0 1 0
7
0 1 0 0 1 0 1
1 0 1 0 1 0 0
0 1 0 1 1 0 0
0 0 1 0 1 1 0
1 1 1 1 0 1 1
0 0 0 1 1 0 1
1 0 0 0 1 1 0
Case #1
108
Case #2
96
Case #3
264