本文最后更新于 1163 天前,其中的信息可能已经有所发展或是发生改变。
#include<iostream>
#include<cstring>
using namespace std;
int n,m,x,y,sum=0;
int array[1100][1100],beUsed[1100];
void search(int x){
if(x==y-1){
sum++;
}
else{
for(int i=0;i<n;i++){
if(array[x][i]==1&&beUsed[i]==0){
beUsed[i]=1;
search(i);
beUsed[i]=0;
}
}
}
}
int main(){
int answer=0;
memset(beUsed,0,sizeof(beUsed));
memset(array,0,sizeof(array));
cin>>n>>m;
for(int i=0;i<m;i++){
cin>>x>>y;
array[x-1][y-1]=1;
array[y-1][x-1]=1;
}
cin>>x>>y;
beUsed[x-1]=1;
for(int i=0;i<n;i++){
if(i!=x-1&&i!=y-1){
beUsed[i]=1;
search(x-1);
if(sum==0){
answer++;
}
beUsed[i]=0;
sum=0;
}
}
cout<<answer<<endl;
return 0;
}
Post Views: 193