广度搜索
采用队列的方式
queue<pair<int, int>> p;
while(!p.empty())
{
int n = p.size();
while(n>=0)
{
auto [x,y] = p.front();
p.pop();
…
p.push()…;
}
}
拓扑排序
把拓扑转换成图的结构
vector<vector> to(n);
vector ingree(n,0);
for(auto iter:relations)
{
to[iter[0]-1].push_back(iter[1]-1);
ingree[iter[1]-1]++;
}
深度搜索
void dfs(const vector<vector>& matrix, vector<vector>& can_reach,
int r, int c)
是否需要记录访问过的位置
访问过的位置是否需要被修改