Untitled
unknown
plain_text
2 years ago
1.4 kB
7
Indexable
#include <iostream> using namespace std; int n,m; int dem[25]; int cap[2][25]; int canh[25][25]; int visit[25][25]; int Q[100000]; int Q1[100000]; int Qd[100000]; int f = -1; int kq; void push(int x,int y, int d){ f++; Q[f] = x; Q1[f] = y; Qd[f] = d; } void pop(int &x,int &y, int &d){ x = Q[f]; d = Qd[f]; y = Q1[f]; f--; } void re_canh(){ for(int i = 0; i < n; i++){ for(int j = 0 ; j < n; j++){ canh[i][j] = 0; } } } void re_visit(){ for(int i = 0; i < n; i++){ for(int j = 0 ; j < n; j++){ visit[i][j] = 0; } } } void DFS(int x, int y, int d){ re_visit(); f = -1; push(x,y,d); visit[x][y] = visit[y][x] = 1; while(f > -1 ){ pop(x,y,d); if(d > kq) kq = d; visit[x][y] = visit[y][x] = 1; for(int i = 0; i < n; i++){ if(canh[y][i] == 1 && visit[y][i] == 0){ push(y,i,d+1); //visit[x][i] = visit[i][x] = 1 ; if(d + 1 > kq) kq = d + 1; } } } } int main(){ freopen("input.txt","r",stdin); int T; cin >> T; for(int tc = 1; tc <= T; tc++){ cin >> n >> m; re_canh(); for(int i = 0; i < m; i++){ int x, y; cin >> x >> y; cap[0][i] = x; cap[1][i] = y; canh[x][y] = canh[y][x] = 1; } kq = 0; for(int i = 0; i < m; i++){ DFS(cap[0][i],cap[1][i],1); DFS(cap[1][i],cap[0][i],1); } cout <<"#" << tc << " " << kq << endl; } return 0; }
Editor is loading...