【链接】 我是链接,点我呀:)

【题意】

在这里输入题意

【题解】

二进制枚举要解开哪些环。
把所有和它相关的边都删掉。
对于剩下的联通分量。
看看是不是每一个联通分量都是一条链
->每个点的度数都不大于2
->不是环。
同时剩余的联通分量的个数x
解开的环的个数y
y>=x-1才行
满足以上条件即可

【代码】

#include <bits/stdc++.h>
using namespace std; const int N = 20; int n;
int g[N][N];
bool vis[N]; bool dfs(int x,int pre){
vis[x]=1;
int count = 0;
for (int i = 1;i <= n;i++)
if (g[x][i]>0 && i!=pre && !vis[i]){
count++;
if (count>2) return false;
if (!dfs(i,x)) return false;
}else {
if (i==pre) count++;
if (count>2) return false;
if (g[x][i]>0 && i!=pre && vis[i]) return false;
}
return true;
} int main(){
#ifdef LOCAL_DEFINE
freopen("rush_in.txt", "r", stdin);
#endif
ios::sync_with_stdio(0),cin.tie(0);
int kase = 0;
while (cin >>n && n){
memset(g,255,sizeof g);
int x,y;
while (cin >> x >> y && !(x==-1 && y==-1)){
g[x][y] = 1;g[y][x] = 1;
}
int ma = 1<<n;
int ans = n; for (int i = 0;i < ma;i++){
int out = 0;
memset(vis,0,sizeof vis);
for (int j = 0;j <n;j++){
if ((1<<j)&i){
out++;
vis[j+1] = 1;
for (int k = 1;k <= n;k++)
if (g[j+1][k]==1)
g[j+1][k] = g[k][j+1] = 0;
}
} int lian = 0;
bool ok = true;
for (int i = 1;i <= n;i++)
if (!vis[i]){
ok = ok&dfs(i,-1);
if (!ok) break;
lian++;
}
if (ok && lian-1<=out){
ans = min(ans,out);
} for (int j = 0;j <n;j++)
if ((1<<j)&i)
for (int k = 1;k <= n;k++)
if (g[j+1][k]==0)
g[j+1][k] = g[k][j+1] = 1;
}
cout << "Set "<<++kase<<": Minimum links to open is "<<ans << endl;
}
return 0;
}

最新文章

  1. vs运行时候冒了这个错:无法启动IIS Express Web 服务器~Win10
  2. 关于C#中readonly的一点小研究
  3. 自己封装一个Log模块
  4. [转]vb socket通信(TCP/UDP)一对一、多对一
  5. (转)HBase 的原理和设计
  6. 视频播放器开发中遇到的一些小问题MPMoviePlayerController
  7. 语音分享应用ios源码
  8. UVa 297 (四分树 递归) Quadtrees
  9. [JavaScript] js 复制到剪切板
  10. C# Dispose Finalize
  11. SQLServer 工具技巧
  12. 设计模式(十五):Iterator迭代器模式 -- 行为型模式
  13. Natas Wargame Level27 Writeup(SQL表的注入/溢出与截取)
  14. 数据库中row_number()、rank()、dense_rank() 的区别
  15. 【读书笔记】iOS-iOS敏捷开发
  16. nodejs 修改端口号 process.env.PORT(window环境下)
  17. easyUi DataGrid 显示日期列,时间为空也可,的正常显示,及普通居中列情况
  18. finger-guessing game:1场景搭建
  19. 第三百六十八节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现搜索的自动补全功能
  20. aarch64_a1

热门文章

  1. vue.2.0-路由
  2. 25.内置API
  3. 如何保证对象线程内唯一:数据槽(CallContext)
  4. BZOJ 4144 Dijkstra+Kruskal+倍增LCA
  5. tomcat安装部署
  6. input[type=date]
  7. android+myeclipse+mysql自定义控件下拉框的数据绑定
  8. IDEA 开发工具在POM.XML文件中增加依赖
  9. LeetCode Implement strStr()(Sunday算法)
  10. 31.Intellij idea 的maven项目如何通过maven自动下载jar包