首页 > 其他 > 详细

部落卫队

时间:2018-08-21 14:50:28      阅读:191      评论:0      收藏:0      [点我收藏+]

考试题(打了一个小时才骗到十分......),考试后突然发现是搜索.....,其实就是去枚举他能不能进护卫队.....,代码不长:

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int a[11000],b[11000];
 4 int ji_lu[11000];
 5 int ans[1100][1100];
 6 int maxn;
 7 int n,m;
 8 void dfs(int x,int y)
 9 {
10     if(x==n+1)
11     {
12         if(y>maxn)
13         {
14             maxn=y;
15             for(int i=1;i<=n;i++) ji_lu[i]=b[i];//记录一下 
16         }
17         return ;
18     }
19     int biao_ji=0;
20     for(int i=1;i<=x-1;i++)
21     {
22         if(b[i]&&ans[x][i]==1)//去看能不能放 
23         {
24             biao_ji=1;
25             break;
26         }
27     }
28     if(!biao_ji)
29     {
30         b[x]=1;
31         dfs(x+1,y+1);//搜下一个 
32         b[x]=0;
33     }
34     dfs(x+1,y);
35 }
36 int main()
37 {
38     cin>>n>>m;
39     for(int i=1;i<=m;i++)
40     {
41         int x;
42         int y;
43         cin>>x>>y;
44         ans[x][y]=1;
45         ans[y][x]=1;//读入,两人互为仇敌 
46     }
47     dfs(1,0);
48     cout<<maxn<<endl;
49     for(int i=1;i<=n;i++) cout<<ji_lu[i]<<" ";
50 }

.....

部落卫队

原文:https://www.cnblogs.com/dai-jia-ye/p/9510919.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!