最近研究分量入度,稍微总结一下,以后继续补充:

hdu 2767 一样的目题

求加几条边可以使原图成一个强连通分量

思绪:先求出强连通分量个数,再求出每一个强连通分量的入度,度出

入度为0的个数和度出为0的个数,最大的那个就是要加的边

每日一道理
“上下五千年,龙的看火不灭;古有愚公志,而今从头越…… ”站在新世纪的门槛上,我们的追求就是让祖国灿烂的喜悦飞扬在美好的明天……
#include<stdio.h>
#include<stack>
#include<string.h>
using namespace std;
#define N 20001
#define inf 0x3fffffff
int n,m,OP;
int belong[N],dfs[N],low[N],ins[N],in[N],out[N];
struct op
{int end;struct op *next;
}*e[50002];
void addeage(int x,int y)
{struct op *q=new op;q->end=y;q->next=e[x];e[x]=q;
}
stack<int>Q;
int ans,idx;
void Tarjan(int x)
{int v;dfs[x]=low[x]=idx++;Q.push(x);ins[x]=1;for(op *j=e[x];j;j=j->next){if(dfs[j->end]==-1){Tarjan(j->end);low[x]=low[x]>low[j->end]?low[j->end]:low[x];}else if(ins[j->end]==1)low[x]=low[x]>dfs[j->end]?dfs[j->end]:low[x];}if(low[x]==dfs[x]){ans++;while(1){v=Q.top();Q.pop();ins[v]=0;belong[v]=ans;if(v==x)break;}}
}
int main()
{int i,j,x,y,z,t;while(scanf("%d%d",&n,&m)!=-1){OP=0;for(i=0;i<=n;i++){e[i]=NULL;dfs[i]=-1;ins[i]=0;out[i]=0;in[i]=0;}for(i=0;i<m;i++){scanf("%d%d",&x,&y);addeage(x,y);}ans=idx=0;for(i=1;i<=n;i++){if(dfs[i]==-1)Tarjan(i);}if(ans==1){printf("0\n");continue;}for(i=1;i<=n;i++){for(op *j=e[i];j;j=j->next){if(belong[i]!=belong[j->end]){in[belong[j->end]]++;out[belong[i]]++;}}}int OP1=0;for(i=1;i<=ans;i++){if(in[i]==0)OP1++;if(out[i]==0)OP++;}if(OP<OP1)OP=OP1;printf("%d\n",OP);}return 0;
}

文章结束给大家分享下程序员的一些笑话语录: 自从有了Photoshop,我再也不相信照片了!(没有Photoshop的年代,胶片照片年代做假的也不少,那时候都相信假的!)

转载于:https://www.cnblogs.com/xinyuyuanm/archive/2013/05/04/3060106.html

分量入度hdu 3836 Equivalent Sets相关推荐

  1. hdu 3836 Equivalent Sets

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=3836 Equivalent Sets Description To prove two sets A ...

  2. 【转载】图论 500题——主要为hdu/poj/zoj

    转自--http://blog.csdn.net/qwe20060514/article/details/8112550 =============================以下是最小生成树+并 ...

  3. 【HDOJ图论题集】【转】

    1 =============================以下是最小生成树+并查集====================================== 2 [HDU] 3 1213 How ...

  4. 一系列图论问题[转]

    =============================以下是最小生成树+并查集====================================== [HDU] 1213 How Many ...

  5. 图论练习题(存起来练)

    =============================以下是最小生成树+并查集======================================  [HDU]  1213 How Man ...

  6. TarjanLCA题集【夏天的风】

    [HDU] [强连通]: 1269  迷宫城堡 判断是否是一个强连通★ 2767Proving Equivalences  至少加几条边让整个图变成强连通★ 3836 Equivalent Sets ...

  7. kk_想要学习的知识

    2018/4/27 计算几何 一.简介 计算几何属于ACM算法中比较冷门的分类,在省赛中只在前几年考察过,这两年还没有考过,而且和高精度计算一样,遇到题目主要靠套模板,因此对题意的理解至关重要,而且往 ...

  8. linux如何批量改名,Linux 批量改名之 rename 命令

    刚学习到 rename 命令功能很强大,比win 下的 ren 厉害啊 具体看 man rename 语法:  rename [ -h|-m|-V ] [ -v ] [ -n ] [ -f ] [ - ...

  9. 图论 —— 图的连通性

    [基本概念] 1.连通图与连通分量 1)连通图:无向图 G 中,若对任意两点,从顶点 Vi 到顶点 Vj 有路径,则称 Vi 和 Vj 是连通的,图 G 是一连通图 2)连通分量:无向图 G 的连通子 ...

  10. 洛谷 P2746 [USACO5.3]校园网Network of Schools

    题目描述 一些学校连入一个电脑网络.那些学校已订立了协议:每个学校都会给其它的一些学校分发软件(称作"接受学校").注意即使 B 在 A 学校的分发列表中, A 也不一定在 B 学 ...

最新文章

  1. 刚子扯谈:微信 今天你打飞机了嘛吗?
  2. docker 命令汇总
  3. html自动刷新倒计时,基于JavaScript实现自动更新倒计时效果
  4. numpy 深复制 切片创建视图
  5. linux ubuntu 桌面,Ubuntu Linux 入门(三):熟悉 Ubuntu Linux 桌面环境
  6. 徐州事业单位计算机软件类,徐州计算机办公应用软件
  7. 【技术分享】CSS 实现渐变色背景
  8. Java学习笔记---接口
  9. unityios开发--加载视频以及加载完成之后自动跳转 .
  10. 彩虹浏览器使用技巧:页签自动切换
  11. C语言高级输出及进阶
  12. 数据结构之交换排序:冒泡排序
  13. Ubuntu下将dash装换成bash
  14. appinventor离线版下载_Chrome 离线安装包下载
  15. :nth-child和:nth-of-type之间的差异
  16. oracle密文怎么弄成明文,明文编码随机化加密方案
  17. c语言表达式语法问题,C语言表达式的语法图与语法检查
  18. 计算机专业数字逻辑,大学计算机专业数字逻辑课程试卷及答案(4份)
  19. 麒麟服务器开启多个终端,厉害:麒麟多开同步器
  20. matlab 线透明度,matlab 曲线填充 透明度

热门文章

  1. Java中super的用法 ____简单粗暴
  2. 在 CentOS 上安装 Docker 引擎
  3. 【渝粤教育】国家开放大学2019年春季 2328仓储与配送管理 参考试题
  4. 【渝粤教育】国家开放大学2018年春季 0390-22T古代诗歌散文专题 参考试题
  5. [渝粤教育] 西南科技大学 英语写作 在线考试复习资料
  6. 【渝粤题库】陕西师范大学800009 环境变迁
  7. 23种设计模式(十三)接口隔离之门面模式
  8. 约束最优化方法 (二) Zoutendijk容许方向法
  9. moonlight不显示鼠标指针
  10. bzoj 3351 [ioi2009]Regions