C# 프로그래밍 할당에 문제가 있습니다. NxM (N : 행, M : cols) 행렬이 있습니다. 로봇이 행렬을 따라 걷고 있는데, 아래 또는 오른쪽으로 이동할 수 있습니다 (대각선 이동이 허용되지 않음). 항상 맨 위의 맨 왼쪽 모서리부터 시작합니다. 로봇이 이동하는 각 셀에서 "보물"을 수집 중입니다. 어떤 수집 지점이 그에게 할당되고, 그는 수집 지점으로 보물을 옮겨야합니다 (그리고 그가 도달하면 그는 더 이상 갈 수 없습니다). 내 임무는 가장 보물을 운반 할 수있는 CP와 그 수를 결정하는 것입니다. 프로세스에 대한 제한도 있습니다 : 최대 실행 시간 0.2 초 및 최대 사용 RAM 32MB.2 차원 배열 게임 - 걷고 찾기 C#
필자는 모든 경로를 찾아보고 각 경로의 보물을 계산하고 최대 값을 검색 한 다음 최대 값을 갖는 CP를 검색해야합니다.
주어진 CP에 대한 모든 경로를 수집하는 방법이 누락되었습니다.
현재 코드 :
string[] firstline = Console.ReadLine().Split(new char[] { ' ' });
int N = Convert.ToInt32(firstline[0]); // N
int M = Convert.ToInt32(firstline[1]); // M
int K = Convert.ToInt32(firstline[2]); // no of treasures
int G = Convert.ToInt32(firstline[3]); // no of CPs
int[,] TREASURES = new int[K, 2]; // collecting the location for each tres
for (int i = 0; i < K; i++)
{
string[] line = Console.ReadLine().Split(new char[] { ' ' });
TREASURES[i, 0] = Convert.ToInt32(line[0]); // row
TREASURES[i, 1] = Convert.ToInt32(line[1]); // col
}
int[,] CPS = new int[G, 2]; // same for CPs
for (int i = 0; i < G; i++)
{
string[] line = Console.ReadLine().Split(new char[] { ' ' });
CPS[i, 0] = Convert.ToInt32(line[0]);
CPS[i, 1] = Convert.ToInt32(line[1]);
}
(...)
int C = 0; // The count of max treasures
int CP = 0; // The answer CP's index
Console.WriteLine(C);
Console.WriteLine("{0} {1}", CPS[CP,0], CPS[CP,1]);
, 당신은, 당신은 단지 좌표 점을 저장하는 문제를 해결하기 위해 시도하지 않은? 시도해 봤어? – Mahmoud
나는 다른 접근법을 시도했다. (http://www.geeksforgeeks.org/print-all-possible-paths-from-top-left-to-bottom-right-of-a-mxn-matrix/), (https : //stackoverflow.com/questions/41409100/finding-all-possible-paths) 그러나 나는 그들을 구현하는데 성공하지 못했다. – benyogyerek