깊이 옮 겨 다 니 기 (DFS)

현재 n 명의 엔지니어 와 6 가지 업무 (번 호 는 0 ~ 5) 가 있 습 니 다. 현재 모든 사람 이 감당 할 수 있 는 업무 번호 표를 제시 합 니 다.지금 은 업무 배정 이 필요 하 다. 모든 엔 지 니 어 는 자신 이 감당 할 수 있 는 업무 에 만 배정 되 고 두 엔 지 니 어 는 같은 업무 에 배정 되 지 못 한다.만약 두 가지 업무 배정 중 한 사람 이 배정 되 는 업무 번호 가 다 르 면 서로 다른 업무 배정 으로 간주 되 고, 지금 은 몇 가지 서로 다른 업무 배정 계획 이 있 는 지 계산 해 야 한다. 
입력 설명:
     n+1 :
         n(1 ≤ n ≤ 6)     ,            ,    dfs,     i==     
    n ,          i(1 ≤ i ≤ n)         (         )

출력 설명:

입력 예:
6
012345
012345
012345
012345
012345
012345

출력 예:
720
----------------------------------------------------------------------------------------------------------------------------------------------------
생각:
먼저 입력 한 문자열 에 따라 두 개의 배열 을 만 들 고 가로 좌 표를 사람 으로 하 며 세로 좌 표를 작업 으로 할 수 있 습 니 다. 1 로 할 수 있 고 0 으로 할 수 없습니다. 깊 은 검색 (dfs) 을 할 수 있 습 니 다. i 대 표 는 i 개인 에 게 옮 겨 다 니 고 i = sum 일 때 1 인당 옮 겨 다 니 며 작업 을 완성 할 수 있 습 니 다.s 작업 0 부터 작업 5 까지 옮 겨 다 니 며 배열 mid 저장 소 를 만 듭 니 다.
코드:
import java.util.Scanner;

public class Main {
	 
	 static int count = 0;
	 static int sum;
	 static int[][] vector;
	 static int mid[];
	
	 public static void main(String args[]){
		 Scanner sc = new Scanner(System.in);
		 sum = sc.nextInt();
		 String ss = sc.nextLine();
		 vector = new int[sum][6];
		 mid = new int[6];
		 for(int i=0;i

참조 링크:
참고 1
참조 2

좋은 웹페이지 즐겨찾기