
本题最开始我以为是要用深度优先再加一个判断,写了半天发现题意理解错误。其实不停的循环判断该点和后面的点是否是一个团组中的就行了,将沿途中的点保存在Vector中,对每一个新的点进行判断:是否和前面所有的点属于同一个团中就行了。
#include<iostream>
#include<algorithm>
#include<vector>
#include<stack>
using std::cin;
using std::cout;
using std::endl;
using std::vector;
using std::string;
using std::stack;
struct position
{
int x;
int y;
};
void maxGroup(const vector<vector<

这篇博客探讨了在解决最大团问题时误用深度优先的情况,实际上只需要不断检查当前点与已遍历点是否构成团,并用Vector记录过程。通过对每个新点判断其是否与所有先前点同属一团,即可找到答案。

2549

被折叠的 条评论
为什么被折叠?



