题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3498

        n个点,m条无向边,删除一个点会把与其相邻的点一起删掉,问最少删几次可以删掉所有点。

        DLX可重复覆盖模板...


AC代码:

#include <bits/stdc++.h>
using namespace std;
const int maxn=60;
int L[maxn*maxn],R[maxn*maxn],U[maxn*maxn],D[maxn*maxn];
int C[maxn*maxn],H[maxn],cnt[maxn],vis[maxn];
int n,m,id,fans;
vector<int> G[maxn];void init(){for(int i=0;i<=n;i++){G[i].clear();G[i].push_back(i);cnt[i] = 0; U[i] = D[i] = i;L[i + 1] = i; R[i] = i + 1;}R[n] = 0; id = n + 1;memset(H,-1,sizeof(H));
}void Link(int r, int c){cnt[c]++; C[id] = c;U[id] = U[c]; D[ U[c] ] = id;D[id] = c; U[c] = id;if(H[r] == -1) H[r] = L[id] = R[id] = id;else{L[id] = L[ H[r] ]; R[ L[ H[r] ] ] = id;R[id] = H[r]; L[ H[r] ] = id;}id ++;
}void Remove(int Size){for(int j=D[Size];j!=Size;j=D[j])L[ R[j] ] = L[j], R[ L[j] ] = R[j];
}void Resume(int Size){for(int j=D[Size];j!=Size;j=D[j])L[ R[j] ] = R[ L[j] ] = j;
}int h(){int sum = 0;memset(vis, 0, sizeof(vis));for(int i=R[0];i;i=R[i]){if(vis[i]) continue;sum ++;for(int j=D[i];j!=i;j=D[j]){for(int k=R[j];k!=j;k=R[k])vis[ C[k] ] = 1;}}return sum;
}void DLX(int k){int mm = maxn, pos;if(k + h() >= fans) return;if( !R[0] ){if(k < fans) fans = k;return ;}for(int i=R[0];i;i=R[i])if(mm > cnt[i]) mm = cnt[i] , pos = i;for(int i=D[pos];i!=pos;i=D[i]){Remove(i);for(int j=R[i];j!=i;j=R[j]) Remove(j);DLX(k + 1);for(int j=R[i];j!=i;j=R[j]) Resume(j);Resume(i);}
}int main(){int u,v;while(scanf("%d%d",&n,&m) != -1){init();for(int i=0;i<m;i++){scanf("%d%d",&u,&v);G[u].push_back(v);G[v].push_back(u);}for(int i=1;i<=n;i++){for(unsigned int j=0;j<G[i].size();j++){int t=G[i][j];Link(i,t);}}fans=n;DLX(0);printf("%d\n",fans);}return 0;
}

HDU 3498 whosyourdaddy(DLX重复覆盖)相关推荐

  1. HDU 3498 whosyourdaddy DLX重复覆盖

    题目: http://acm.hdu.edu.cn/showproblem.php?pid=3498 题意: 有 n n个敌人,其中有mm对敌人互为邻居,当你攻击杀死一个敌人时,同时会杀死它所有的邻居 ...

  2. hdu - 3498 - whosyourdaddy(重复覆盖DLX)

    题意:N(2 ≤ N ≤ 55)个点,M(0 ≤ M ≤ N*N)条无向边,删除一个点会把与其相邻的点一起删掉,问最少删几次可以删掉所有点. 题目链接:http://acm.hdu.edu.cn/sh ...

  3. HDU 3498 whosyourdaddy (可重复覆盖舞蹈链)

    题意: 给出N个点,M个边构成图.每选取一个点都可以覆盖其相邻点,问要覆盖所有点最少选几个点 思路: 每个点都作为一个点集,进行爆搜覆盖,舞蹈链模板题. 代码: #include <bits/s ...

  4. hdu 2295 Radar DLX 重复覆盖问题

    http://acm.hdu.edu.cn/showproblem.php?pid=229 题意: 一个国家有n个城市,m个雷达,我们同时操作的雷达数最多为k,给出城市与国家的坐标,求小于等于k的操作 ...

  5. hdu - 3498 - whosyourdaddy(反复覆盖DLX)

    题意:N(2 ≤ N ≤ 55)个点,M(0 ≤ M ≤ N*N)条无向边,删除一个点会把与其相邻的点一起删掉.问最少删几次能够删掉全部点. 题目链接:http://acm.hdu.edu.cn/sh ...

  6. HDU 3498 whosyourdaddy(Dancing_Links重复覆盖)

    题目地址 题意:给你n个城市,m条道路,每次摧毁一个城市会附带把与它直接连接的城市的摧毁,一个城市可以重复摧毁(如果不能重复就是精确覆盖了),问你最少摧毁多少个城市能把所有城市摧毁. 思路:我们可以构 ...

  7. [DLX重复覆盖] hdu 3498 whosyourdaddy

    题意: 给N个怪,M个关系. 每个关系代表a和b是邻居. 然后问每次攻击你可以攻击一个怪以及它的全部邻居 问最少需要几次攻击能把怪全部杀死. 思路: 怪为行和列,然后对面每个怪的邻居都是这个怪的列建图 ...

  8. hdu 3498 whosyourdaddy

    Dancing Links 重复覆盖问题~ 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3498 这两天学习了Dancing Links  ,它主要 ...

  9. hdu 3498 whosyourdaddy (重复覆盖,DLX+迭代加深A*)

    题意:有一个英雄,他有一个技能,可以使一个点和与他相邻的点受到伤害,问最少攻击几个点可以使所有点至少被伤害一次. 思路:DLX.很裸.设行为每一个点,列为攻击点,在这里行元素与列元素都为n.然后DLX ...

最新文章

  1. java 基础(匿名内部类)
  2. 用TortoiseSVN忽略文件或文件夹(ignore)(网络摘抄记录)
  3. mac笔记本怎么外接显示屏_苹果MAC笔记本怎么外接显示器?
  4. Mac下的Parallel Windows忘记密码怎么办?
  5. 基于Docker的Consul服务发现集群搭建
  6. Android之用SingleTask和TaskAffinity解决手机截取的项目启动页面问题
  7. PIC18F452之1602自定义字符
  8. Keras中LSTM的return_sequences和return_state
  9. 作者:张宇中(1969-),男,中国电信股份有限公司云计算分公司首席数据分析师、大数据分析顾问。...
  10. Hashmap扩容时出现循环链表(jdk1.8把头插法换成了尾插法的原因)
  11. 甲方都爱的C4D设计,有了这组灵感,0基础也能get​!
  12. TypeError: Unexpected keyword argument passed to optimizer: amsgrad原因及解决办法
  13. 零基础入门语义分割——Task1 赛题理解
  14. Atitit http2 新特性
  15. 介质天线的设计原理_以水为媒介的介质天线的制作方法
  16. 如何设置内网端口映射外网
  17. go分析和kegg分析_GO富集分析\KEGG
  18. 矩阵的对称性,自反性和反对称性的判断
  19. [BZOJ 1135][POI2009]Lyz
  20. php 图片处理慢,php图片处理

热门文章

  1. 伪原创-在线伪原创-免费在线伪原创
  2. 服务器ubuntu系统安装后黑屏,ubuntu 成功安装后开机黑屏或闪屏
  3. 将TXT转化为PDF的软件,分享两个简单的方法!
  4. goole推出图片加载库GLIDE
  5. python自相关图_Python绘制时间序列数据的时序图、自相关图和偏自相关图
  6. 12月最新S-CMS学校建站系统(含小程序)
  7. 品读国学经典之二——《邹忌讽齐王纳谏》》
  8. 修改Windows中文用户名为英文(更全面的方法)
  9. DL之CNN优化技术:卷积神经网络算法简介之特有的优化技术及其代码实现——im2col技术等技术
  10. java的泰森多边形算法,泰森多边形算法JAVA,渲染,经纬度