一、总论
应当意识到,我没有办法依靠平时的积累写出一篇华美的文章。写作或者说表达是必须依靠模板。而“模板”的范围不应该只限于语法层面的“开头,中间段,结尾”。它应当还包括“语义”层面,比如说“意义应当从哪几个角度去答?需要引入事例还是单纯进行说理?”这样的模板。
还是要感慨一下,英语六级其实和英语能力不太沾边。哪怕是沾边,我也没有办法将其他的英语能力换成成绩。反而言之,即使我的六级成绩不好,但是真的遇到需要英语的场合,也应当坦然积极的准备,而不是自怨自艾,自我否定。
你说这些,跟我有什么关系?
如下所示
set<Node> visited;
bool check(Node son);
int bfs(Node start)
{
// init
queue<Node> q;
q.push(start);
visited.insert(start);
while (!q.empty())
{
Node front = q.front();
q.pop();
for (son : q.neigbour)
{
// prune
if (check(son))
{
q.push(son);
visited.insert(son);
// son is the correct answer
if (ac(son))
{
return son.info();
}
}
}
}
return -1;
}
int main()
{
//...
int ans = bfs();
//...
return 0;
}
其中有几部分需要一一强调,第一个是 check() 函数用于进行减枝,只有经过 check 的子节点会被加入队列。
bool check(Node son);