예제 #1
0
void BFS(POS start, int (*visit)[302])
{
	std::queue<POS> que;
	que.push(start);

	while (que.empty() == false)
	{
		POS p = que.front();
		que.pop();
		if (visit[p.first][p.second])// 여기서 중복체크해야함. 자식 삽입할때 하면 안됨.
		{
			continue;
		}

		Aging(p, visit);
		visit[p.first][p.second] = 1;

		// 자식 추가
		for (int i = 0; i < 4; ++i)
		{
			int n = p.first + DIR[i][0];
			if (n > N) continue;
			int m = p.second + DIR[i][1];
			if (m > M) continue;
			if (arr[n][m] == 0)
			{
				continue;
			}

			POS c = std::make_pair(n, m);

			que.push(c);
		}
	}
}
예제 #2
0
int main(void)
{
    FILE* fp = fopen("result.txt", "w");
    if (fp == NULL)
        printf("error\n");
    Sleep(2000);    //挂起两秒钟
    srand((unsigned)time(NULL));    //随机种子
    Initialize();   //对初始个体进行初始化操作
    for (t=0; t<1000; t++)  //种群在该机制下演化一千个时间步
    {
        Aging();    //执行年龄增长机制
        Die();  //执行死亡机制
        RePreduction(); //执行繁殖机制
        printf("A");
        fprintf(fp, "%d\t", Nt);
    }
    fclose(fp);
    return 0;
}