Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <iostream>#include <vector>using namespace std;vector<vector<int> > M;int P[150][150];bool visited[150];vector<int> path;bool dfs(int curx, int target){if(curx==target){if(path.size()==0) return true;bool flag=true;path.push_back(curx);for(int i=1;i<path.size();++i){if(P[path[i-1]][path[i]]){flag=false;break;}else P[path[i-1]][path[i]]=1;}path.pop_back();return flag;}else{path.push_back(curx);visited[curx]=true;bool flag=false;for(int i=0;i<M[curx].size();++i){int t=M[curx][i];if(!visited[t]) {