图的深搜练习-2

来源:互联网 发布:mysql 导出表命令 编辑:程序博客网 时间:2024/04/27 16:41
#include<bits/stdc++.h>using namespace std;const int N=1000;int a[N+10][N+10];int book[N+10];int n,m,start,goal;int rec[N+10];int c[N+10];int sum;void f(int num){    for(int i=1;i<=num-2;i++)  //num-2 en    {        c[rec[i]]++;    }}void dfs(int pos,int num){    if(pos==goal)    {        sum++;        f(num);        return;    }    for(int i=1;i<=n;i++)    {        if(!book[i]&&a[pos][i])        {            book[i]=1;            rec[num]=i;            dfs(i,num+1);            book[i]=0;        }    }}int main(){    scanf("%d%d",&n,&m);    for(int i=0;i<m;i++)    {        int u,v;        scanf("%d%d",&u,&v);        a[u][v]=a[v][u]=1;    }    scanf("%d%d",&start,&goal);    book[start]=1;    dfs(start,1);    //for(int i=1;i<=n;i++) printf("%d ",c[i]);printf("\n");    int ans=0;    for(int i=1;i<=n;i++) if(c[i]==sum) ans++;    if(sum==0) printf("-1\n");    else printf("%d\n",ans);    return 0;}
危险系数
0 0
原创粉丝点击