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

【题意】

在这里输入题意

【题解】

二进制枚举要解开哪些环。
把所有和它相关的边都删掉。
对于剩下的联通分量。
看看是不是每一个联通分量都是一条链
->每个点的度数都不大于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;
}

【习题 7-4 UVA-818】Cutting Chains的更多相关文章

  1. UVA 818 Cutting Chains(状压 + 暴搜)题解

    题意:有1~n个小环,他们中的有些互相扣在一起,问你至少切开几个能把这写小环串成一条链 思路:还是太菜了,题目给的n<=15,显然可以暴力解决. 用二进制表示每个环切还是不切,然后搜索所有情况. ...

  2. UVA 818 Cutting Chains

    https://vjudge.net/problem/UVA-818 题意: 有n个圆环,其中有一些已经扣在了一起.现在需要打开尽量少的圆环,使得所有圆环可以组成一条链 n<=15 因为n< ...

  3. UVA 818 Cutting Chains 切断圆环链 (暴力dfs)

    题意就是给一张无向图,去掉某些结点,然后连成一条链,问最少去掉几个结点. n很小n<=15,所以直接枚举2^15个状态就行啦. 链的条件是1.无环,2.没有度大于2的点,3.把n个散链连起来需要 ...

  4. UVA - 818 Cutting Chains(切断圆环链)(dfs + 二进制法枚举子集)

    题意:有n个圆环(n<=15),已知已经扣在一起的圆环,现在需要打开尽量少的圆环,使所有圆环可以组成一条链. 分析:因为不知道要打开哪个环,如果列举所有的可能性,即枚举打开环的所有子集,最多才2 ...

  5. uva 818 (位运算 + 判环)

     Cutting Chains  What a find! Anna Locke has just bought several links of chain some of which may be ...

  6. uva 10003 Cutting Sticks 【区间dp】

    题目:uva 10003 Cutting Sticks 题意:给出一根长度 l 的木棍,要截断从某些点,然后截断的花费是当前木棍的长度,求总的最小花费? 分析:典型的区间dp,事实上和石子归并是一样的 ...

  7. UVA 10003 Cutting Sticks 区间DP+记忆化搜索

    UVA 10003 Cutting Sticks+区间DP 纵有疾风起 题目大意 有一个长为L的木棍,木棍中间有n个切点.每次切割的费用为当前木棍的长度.求切割木棍的最小费用 输入输出 第一行是木棍的 ...

  8. UVa 10003 - Cutting Sticks(区间DP)

    链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  9. UVA 10003 Cutting Sticks 切木棍 dp

    题意:把一根木棍按给定的n个点切下去,每次切的花费为切的那段木棍的长度,求最小花费. 这题出在dp入门这边,但是我看完题后有强烈的既是感,这不是以前做过的石子合并的题目变形吗? 题目其实就是把n+1根 ...

随机推荐

  1. 泛泰A820L (高通MSM8660 cpu) 3.4内核的CM10.1(Android 4.2.2) 測试版第二版

    欢迎关注泛泰非盈利专业第三方开发团队 VegaDevTeam  (本team 由 syhost suky zhaochengw(z大) xuefy(大星星) tenfar(R大师) loogeo cr ...

  2. HDU 2444 The Accomodation of Students 二分图判定+最大匹配

    题目来源:HDU 2444 The Accomodation of Students 题意:n个人能否够分成2组 每组的人不能相互认识 就是二分图判定 能够分成2组 每组选一个2个人认识能够去一个双人 ...

  3. url与图片

    http://restapi.amap.com/v3/staticmap?location=116.481485,39.990464&zoom=10&size=750*300& ...

  4. Linux下清除系统日志方法

    摘要:相信大家都是用过Windows的人.对于Windows下饱受诟病的各种垃圾文件都需要自己想办法删除,不然你的系统将会变得越来越大,越来越迟钝!windows怎么清理垃圾相信大家都知道的,那么li ...

  5. BZOJ 2553 AC自动机+矩阵快速幂 (神题)

    思路: 我们先对所有读进来的T建一个AC自动机 因为走到一个禁忌串就需要回到根 所以呢 搞出来所有的结束点 或一下 fail指针指向的那个点 然后我们就想转移 a[i][j]表示从i节点转移到j节点的 ...

  6. spring-cloud-netflix集成的服务

    1.Ribbon Ribbon is a client side IPC library that is battle-tested in cloud. It provides the followi ...

  7. Go 编码问题的解决方案

    1.首先需要mahonia 这个包 go get github.com/axgle/mahonia 然后新建一个 func src 字符串 srcCode 字符串当前编码 tagCode 要转换的编码 ...

  8. 如何更改AD域安全策略-密码必须符合复杂性要求

    通常我们在域系统-管理工具上面是找不到“域安全策略”的,我们只能找到“本地安全策略”,而更改“本地安全策略”是不会对域产生任何的作用的.下面这个步骤教你如何找到“域安全策略” 1.Start(开始)– ...

  9. 使用python制作二维码

    python-qrcode是个用来生成二维码图片的第三方模块,主要依赖的是 PIL 模块和 qrcode 库.(PIL模块只支持python2.7及以下版本,python3之后无法使用,官方推荐pyt ...

  10. 两种方法解决 "The License CNEKJPQZEX- has been cancelled..." 问题

    今天在使用 2017 的 IDEA 和 Pycharm 等IDE的时候,提示了如题的问题.之前实在 http://idea.lanyus.com/ 网站点击生成注册码,复制粘贴到 IDEA 中就好了, ...