BFS 시작 (위조 템플릿)
bfs 광도 우선 검색
최근에 몇 가지 검색 문제를 풀었는데, 갑자기 이런 방법이 존재하고 있다는 것을 발견하였다.비교적 기초적인 bfs 코드를 총결하였다.이 코드는 Poj3278 농부가 소를 쫓는 문제의 AC 코드입니다.
코드는 다음과 같습니다.
주로 주석 보기
#include
#include
#include
#include
#include
using namespace std;
#define N 10000000//
type start,aim;//type
//start ,aim
struct node{
int x;
int step;
};
//
//1.
//2.
bool vis[N];
//
queue q;
//
void bfs()
{
while(!q.empty())
{
if(q.front().x==aim)
{
return;
}
node tmp;
//tmp
int X=q.front().x;
// X
//
int Step=q.front().step;
q.pop();
//
//
if(X>=1&&!vis[X-1])
// 1 , X >= 1
//
{
tmp.x=X-1;//
//
tmp.step=Step+1;
vis[X-1]=1;
//
//
q.push(tmp);
}
//
//
if(X1])
//
//1.
//2.
//3. ” “
{
tmp.x=X+1;
tmp.step=Step+1;
vis[X+1]=1;
q.push(tmp);
}
//
if(X2*X])
{
tmp.x=2*X;
tmp.step=Step+1;
vis[2*X]=1;
q.push(tmp);
}
}
}
int main()
{
while(cin>>start>>aim)//
{
memset(vis,0,sizeof(vis));
//
while(!q.empty())q.pop();
//
node ST;
ST.x=start;
ST.step=0;
q.push(ST);
//
//
bfs();
//
cout<return 0;
}
//
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Java 정규식으로 ${name} 형식의 문자열 템플릿 인스턴스 구현앞말 여러분이 이런 상황을 겪은 적이 있을 거라고 믿습니다. 개발 과정에서 사이트 편지와 같은 수요를 충족시킬 때 우리는 문자열 템플릿을 자주 사용해야 합니다. 예를 들어 안에 있는 ${name} 은 사용자의 사용자...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.