算法作业

阅读: 评论:0

算法作业

算法作业


本题最开始我以为是要用深度优先再加一个判断,写了半天发现题意理解错误。其实不停的循环判断该点和后面的点是否是一个团组中的就行了,将沿途中的点保存在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<int>>& matrix, const int& n, int i, vector<int>point, int &max)
{if (pty())point.push_back(i);else{bool flag = true;for (auto j : point){if (matrix[i][j] != 1)return;}point.push_back(i);}if (point.size() > max)max = point.size();for (auto j = i + 1; j < n; j++)maxGroup(matrix, n, j, point, max);
}int main()
{int n, m;while (cin >> n >> m and n != 0) {vector<vector<int>>matrix;for (auto i = 0; i < n; i++){vector<int>arr(n);matrix.push_back(arr);}for (auto j = 0; j < m; j++){int x, y;cin >> x >> y;matrix[x - 1][y - 1] = 1;matrix[y - 1][x - 1] = 1;}int max = 0;vector<int>point;for(auto i=0;i<n;i++){maxGroup(matrix, n, i, point, max);}cout << max << endl;}
} 
/*
5 6
1 2
2 3
2 4
3 4
3 5
4 5
*/

本文发布于:2024-02-04 12:22:30,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170707130155529.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:作业   算法
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23