其他分享
首页 > 其他分享> > 第十一届蓝桥杯E题

第十一届蓝桥杯E题

作者:互联网

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int ve[7][7];
 4 bool visit[7];
 5 int ans=0;
 6 set<set<int> > se;
 7 void dfs(int x,set<int> s)
 8 {
 9     if(!se.count(s))
10     {
11         se.insert(s);
12         ans++;
13     }
14     if(s.size()==7)
15     return ;
16     for(int j=0;j<7;j++)
17     {
18         if(visit[j]||!ve[x][j])
19         continue;
20         s.insert(j);
21         visit[j]=1;
22         dfs(j,s);
23         visit[j]=0;
24         s.erase(j);
25     }
26 }
27 void add(int x,int y)
28 {
29     ve[x][y]=1;
30     ve[y][x]=1;
31 }
32 int main()
33 {
34     add(0,1);
35     add(0,5);
36     add(1,6);
37     add(1,2);
38     add(2,6);
39     add(2,3);
40     add(3,4);
41     add(4,5);
42     add(4,6);
43     add(5,6);
44     set<int> s;
45     for(int i=0;i<=6;i++)
46     {
47         s.insert(i);
48         visit[i]=1;
49         dfs(i,s);
50         visit[i]=0;
51         s.erase(i);
52     }
53     cout<<ans<<endl;
54 }

 

 

标签:第十一届,ve,int,蓝桥,set,ans,se
来源: https://www.cnblogs.com/gzj121a/p/14528683.html