蓝桥 历届试题 网络寻路

    xiaoxiao2021-03-25  54

    #include <cstdio> #include <algorithm> #include <vector> #include <cstring> using namespace std; int n,m,a,b,ans=0; bool vis[10010]; vector<int> v[10010]; void dfs(int x,int num,int w) { if (num==2) { for (int i=0;i<v[x].size();i++) { if (!vis[v[x][i]] || v[x][i]==w) ans++; } return; } for (int i=0;i<v[x].size();i++) { if (!vis[v[x][i]]) { vis[v[x][i]]=true; dfs(v[x][i],num+1,w); vis[v[x][i]]=false; } } return; } int main() { scanf ("%d%d",&n,&m); for (int i=1;i<=m;i++) { scanf ("%d%d",&a,&b); v[a].push_back(b); v[b].push_back(a); } for (int i=1;i<=n;i++) { memset(vis,false,sizeof(vis)); vis[i]=true; dfs(i,0,i); } printf ("%d\n",ans); return 0; }
    转载请注明原文地址: https://ju.6miu.com/read-37161.html

    最新回复(0)