1 条题解
-
0
C++ :
#include<iostream> #define INF 99999999 using namespace std; const int N = 105; int e[N][N],n,m; short ans[N],book[N],tot; bool check(int k) { for(int i=1;i<k;i++) if(book[i]==1&&e[k][i]==1) return false; return true; } void dfs(int step,int sum) { if(step==n+1){ if(sum>tot){ tot=sum; for(int i=1;i<=n;i++) ans[i]=book[i]; } return ; } for(int i=1;i>=0;i--){ book[step]=i; if(i==0) dfs(step+1,sum); if(i==1&&check(step)) dfs(step+1,sum+1); } return ; } int main() { cin>>n>>m; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) if(i==j) e[i][j]=0; else e[i][j]=INF; for(int i=1;i<=m;i++){ int a,b; cin>>a>>b; e[a][b]=1; e[b][a]=1; } dfs(1,0); cout<<tot<<endl; for(int i=1;i<n;i++) cout<<ans[i]<<' '; cout<<ans[n]<<endl; return 0; }
- 1
信息
- ID
- 674
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者