caioj1037: 귀속 7 (미로를 걷다)
3444 단어 차례로 돌아가다
앞에 출력 행렬을 쓸 때 상량수 그룹이 이 문제를 쓰는 게 편해요. 선생님이 말씀하시고 전에 얽힌 문제를 알게 됐어요. 왜 const int인지 모르겠지만 const를 안 써도 돼요.
1.dx[]dy[] 괄호에 숫자 프로그램을 쓰지 않으면 그룹에 몇 개의 요소가 자동으로 계산됩니다
괄호 안에 원소 개수, 예를 들면 원소 4개가 있지만 아래 표는 0123입니다.
2. 출력 시 순환 중인 k를 n으로 쓰는 습관 때문에 여기서 종점에 도달하는 걸음수는 n이 아니라 확실하지 않다
3. 아래 표시는 0123이기 때문에 순환은 0~3, 1~4를 쓸 수 없고 방향은 이 네 가지만 한 번 가면 끝납니다. 행렬의 문제와 달리 i=4를 쓸 수 없습니다.
4. 낮잠이 덜 깼나봐요(20min도 안 돼서 깨웠어요qwq) 입력해서 적어주세요 & 이중 순환 변수 모두 i...우연인 척 qwq
[제목] n*m칸의 미로(n줄, m열이 있음을 나타냄)가 있는데 그 중에서 갈 수 있는 것도 있고 갈 수 없는 것도 있다. 만약에 1로 갈 수 있다는 것을 표시하면 0은 갈 수 없다는 것을 나타낸다. 파일은 이 n*m개의 데이터와 시작점, 끝점을 읽는다(시작점과 끝점은 모두 두 개의 데이터로 묘사하고 각각 이 점의 줄 번호와 열 번호를 나타낸다).지금 네가 프로그래밍을 해서 모든 실행 가능한 길을 찾아내야 한다. 걷는 길에 중복된 점이 없으면 위아래 좌우 네 방향만 갈 수 있다.만약 한 개의 길이 모두 실행할 수 없다면, 상응하는 정보를 출력한다.왼쪽 위와 오른쪽 아래의 순서로 확장해 주십시오. 즉, (0,-1), (-1,0), (0,1), (1,0) [입력 형식] 첫 번째 줄은 두 개의 수 n, m(1
[코드]
#include
using namespace std;
const int dx[]={0,-1,0,1};
const int dy[]={-1,0,1,0};
int n,m,stx,sty,edx,edy,a[20][20],px[400],py[400];
bool flag;
void dfs(int x0,int y0,int k){
px[k]=x0;
py[k]=y0;
if(x0==edx&&y0==edy){
for(int i=1;i<=k;i++)
i",px[i],py[i]):printf("(%d,%d)
",px[i],py[i]);
flag=true;// -1
return;
}
for(int i=0;i<4;i++){// 1
if(a[x0+dx[i]][y0+dy[i]]==1){
a[x0+dx[i]][y0+dy[i]]=0;
dfs(x0+dx[i],y0+dy[i],k+1);
a[x0+dx[i]][y0+dy[i]]=1;
}
}
}
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
scanf("%d",&a[i][j]);
scanf("%d%d",&stx,&sty);
scanf("%d%d",&edx,&edy);
a[stx][sty]=0;// 1 1
dfs(stx,sty,1);
if(!flag) printf("-1
");
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
java 백엔드에서 데이터를 트리로 변환하고 맵은 json 트리를 생성하여 백엔드로 되돌려줍니다. (백엔드 변환)java 백엔드, 데이터를 트리로 변환하고,map는 json 트리를 생성하여 전방으로 되돌려줍니다(백엔드 변환) 1. 왜 이런 블로그를 쓰나요? 2.java 백엔드 코드 3. 전환된 데이터는 다음과 유사한 형식으로 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.