Untitled

mail@pastecode.io avatar
unknown
plain_text
a year ago
2.9 kB
1
Indexable
Never
#include<iostream>
using namespace std;
#define MAX  100 
int n, m;//số đỉnh của đồ thị.
int A[MAX][MAX];// ma trận kề của đồ thị.
int visited[MAX][MAX];
int max_res, res;
int rspin[4] = {-1, 0, 1, 0};
int cspin[4] = {0, 1, 0, -1};
void check(int i, int j){
	if(A[i][j] ==2) res+=1;
	visited[i][j] = true;
	if(i==n-1 && j==n-1){
		max_res = max_res>res?max_res:res;
	}
	for(int k=0; k<4; k++){
		int new_r = i+rspin[k];
		int new_c = j + cspin[k];
		if(new_r>=0 && new_r<n && new_c>=0 && new_c<n && A[new_r][new_c]!=1 && visited[new_r][new_c]==false){
			check(new_r, new_c);
		}

	}
	if(A[i][j]==2) res-=1;
	visited[i][j]=false;
}

int main(){
	int t;
	cin>>t;
	for(int tc=1; tc<=t; tc++){
		cin>>n;
		res = max_res = 0;
		for(int i=0; i<n; i++){
			for(int j=0; j<n; j++) cin>>A[i][j];
		}
		check(0,0);
		cout<<max_res<<endl;
		
	}
	return 0;
}
--------------------------------------------------------------------------------------------
Có một mê cung có một lối vào và một lối ra. Đồ trang sức được đặt trong lối đi của mê cung. Bạn muốn nhặt những viên ngọc sau khi vào mê cung qua lối vào và trước khi ra khỏi mê cung bằng lối ra. Bạn muốn lấy được càng nhiều ngọc càng tốt, nhưng bạn không muốn đi theo lối đi mà bạn đã từng sử dụng.




Khi vị trí của mê cung và trang sức được đưa ra, hãy tìm ra số lượng trang sức lớn nhất mà bạn có thể nhận được mà không cần đi cùng một lối đi hai lần và đường đi đã đi trong trường hợp này.


Giới hạn thời gian: 1 giây (Java: 2 giây)


[Đầu vào] Có thể có nhiều trường hợp thử nghiệm trong tệp đầu vào. Dòng đầu tiên ghi T là số lượng test. Sau đó, các trường hợp thử nghiệm T tổng số được cung cấp trong các dòng sau (T 10)



Trong mỗi trường hợp thử nghiệm, ở dòng đầu tiên, kích thước của mê cung N (1 ≤ N ≤ 10) được đưa ra. Mê cung có hình vuông N×N. Từ dòng thứ hai đến N dòng cho biết thông tin về mê cung. “0” có nghĩa là lối đi, “1” có nghĩa là bức tường và “2” có nghĩa là vị trí của một viên ngọc. Lối vào nằm ở lối đi phía trên bên trái và lối ra nằm ở lối đi phía dưới bên phải. Không có trường hợp nào đường dẫn từ lối vào đến lối ra không tồn tại.






[Đầu ra]

Xuất ra số lượng trang sức lớn nhất có thể nhặt được.
Input
2
5
0 0 0 2 0
2 1 0 1 2
0 0 2 2 0
0 1 0 1 2
2 0 0 0 0
6
0 1 2 1 0 0
0 1 0 0 0 1
0 1 2 1 2 1
0 2 0 1 0 2
0 1 0 1 0 1
2 0 2 1 0 0


Output

6
4