http://acm.hdu.edu.cn/showproblem.php?pid=3671

给出一幅无向图,询问有多少种移除点对的方案使得剩下的连通分量个数大于1.

和上一题差不多的思路直接做n次tarjin即可。

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<vector>
  4. #include<cstring>
  5. using namespace std;
  6. #define LL long long
  7. #define pb push_back
  8. const int maxn=;
  9. vector<int>g[maxn];
  10. int dfn[maxn],low[maxn],sub[maxn],root,sum,ban;
  11. bool vis[maxn];
  12. void dfs(int u){
  13. dfn[u]=low[u]=sum++;
  14. vis[u]=;
  15. int son=;
  16. for(int i=;i<g[u].size();++i){
  17. int v=g[u][i];
  18. if(v==ban) continue;
  19. if(vis[v]){
  20. low[u]=min(low[u],dfn[v]);
  21. }
  22. else{
  23. dfs(v);
  24. if(u==root)son++;
  25. else{
  26. if(low[v]>=dfn[u])sub[u]++;
  27. }
  28. low[u]=min(low[u],low[v]);
  29. }
  30. }
  31. if(u==root)sub[u]=son;
  32. else sub[u]++;
  33. }
  34. int main(){
  35. int n,m,cas=,i,j,u,v;
  36. while(scanf("%d%d",&n,&m)==){
  37. if(n==&&m==)break;
  38. for(i=;i<=n;++i)g[i].clear();
  39. while(m--){
  40. scanf("%d%d",&u,&v);
  41. g[u].pb(v);
  42. g[v].pb(u);
  43. }
  44. int ans=;
  45. for(i=;i<=n;++i){
  46. int p=;
  47. ban=i,sum=;
  48. memset(vis,,sizeof(vis));
  49. memset(sub,,sizeof(sub));
  50. for(j=;j<=n;++j){
  51. if(j==ban || vis[j]) continue;
  52. root=j;
  53. p++;
  54. dfs(j);
  55. }
  56. //cout<<"p="<<p<<endl;
  57. for(j=i+;j<=n;++j){
  58. if(sub[j]+p->=)ans++;
  59. }
  60. }
  61. printf("Case %d: %d\n",++cas,ans);
  62. }
  63. return ;
  64. }

hdu-3671-tarjin/割点方案的更多相关文章

  1. HDU - 3671 Boonie and Clyde (图的割点)

    As two icons of the Great Depression, Bonnie and Clyde represent the ultimate criminal couple. Stori ...

  2. POJ 2117 (割点+连通分量)

    题目链接: http://poj.org/problem?id=2117 题目大意:在一个非连通图中,求一个切除图中任意一个割点方案,使得图中连通分量数最大. 解题思路: 一个大陷阱,m可以等于0,这 ...

  3. Tarjan总结(缩点+割点(边)+双联通+LCA+相关模板)

    Tarjan求强连通分量 先来一波定义 强连通:有向图中A点可以到达B点,B点可以到达A点,则称为强连通 强连通分量:有向图的一个子图中,任意两个点可以相互到达,则称当前子图为图的强连通分量 强连通图 ...

  4. tarjin求割点

    题目: hdu3671 http://acm.hdu.edu.cn/showproblem.php?pid=3671 题意:给一个无向图,要求毁掉两个点,使图变得不连通,图一开始是连通的 因为要毁掉两 ...

  5. HDU 1026 (BFS搜索+优先队列+记录方案)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1026 题目大意:最短时间内出迷宫.迷宫里要杀怪,每个怪有一定HP,也就是说要耗一定时.输出方案. 解 ...

  6. HDU 4587 TWO NODES 割点

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4587 题意: 删除两个点,使连通块的数目最大化 题解: 枚举删除第一个点,然后对删除了第一个点的图跑 ...

  7. hdu 5739 割点

    Fantasia Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total S ...

  8. hdu 2126 Buy the souvenirs 二维01背包方案总数

    Buy the souvenirs Time Limit: 10000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  9. HDU 2126 01背包(求方案数)

    Buy the souvenirs Time Limit: 10000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

随机推荐

  1. shiro中authc和user的权限区别

    前者(authc)是认证过,后者(user)是登录过,如果开启了rememberMe功能的话,后者(user)也是可以通过的,而前者(authc)通过不了.故我们用authc来校验一些关键操作,比如购 ...

  2. vs添加webservice

    VS2010中添加WebService注意的几个地方 添加web引用和添加服务引用有什么区别? 2.4.1 基础知识——添加服务引用与Web引用的区别 C#之VS2010开发Web Service V ...

  3. org.springframework.jdbc.UncategorizedSQLException: Error attempting to get column 'alarmGroup' from result set. Cause: java.sql.SQLException: Error

    异常展示: org.springframework.jdbc.UncategorizedSQLException: Error attempting to get column 'alarmGroup ...

  4. python requests post和get

    import requests import time import hashlib import os import json from contextlib import closing impo ...

  5. JS实现 进度条 不用控件

    demo1 <html> <head> <title>进度条</title> <style type="text/css"&g ...

  6. python中while循环运算符及格式化输出

    一,while循环 while 条件: while语句块(循环体) 运行: 判断你给的条件是否为真,如果真则执行循环体.否则跳出循环. 执行完循环体之后再次判断条件是否为真 例子1 我们玩联盟的时候喷 ...

  7. config配置

    <?php /** * User: Eden * Date: 2019/3/30 * 共有内容 */ /** CREATE TABLE `tf_configs` ( `id` int(11) N ...

  8. 【转】Qt鼠标键盘事件

    http://blog.csdn.net/lovebird_27/article/details/50351336 Qt 程序需要在main()函数创建一个QCoreApplication对象,然后调 ...

  9. python调用虹软2.0

    第一版踩了无数的坑,终于第二版把坑全添了,这次更新可以正常获取人脸数,角度,代码可读性更高,继续更新中 第三版已发出 https://www.cnblogs.com/wxt51/p/10125460. ...

  10. 认识flask框架-2

    1.json:基于键值对的字符串,轻量级的数据交互格式,用来传输数据 2.json模块 dumps:把字典转化成json字符串. loads:把json字符串转成字典. dump.load操作的是文件 ...