Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include<iostream>#include<vector>#include<map>#include<set>#include<algorithm>using namespace std;bool findpath(map<int,vector<int>>& G, int x1, int y1, vector<int>& path,vector<int> tmp, vector<bool>& visited){if(x1==y1){visited[y1]=true;tmp.push_back(y1);path=tmp;return true;}for(int i=0;i<G[x1].size();i++){if(!visited[G[x1][i]]){visited[G[x1][i]]=true;tmp.push_back(G[x1][i]);if(findpath(G,G[x1][i],y1,path,tmp,visited)){return true;}tmp.pop_back();}}return false;}bool isoverlap(map<int,vector<int>>& G,int x1,int y1,int x2,int y2){vector<bool> visited1(G.size(),false),visited2(G.size(),false);vector<int> path1,path2;vector<int> tmp;