HDU 1269 裸奔的强联通分量
看了别人博客 http://blog.csdn.net/jokes000/article/details/7538994
- #include <cstdio>
- #include <cmath>
- #include <algorithm>
- #include <iostream>
- #include <cstdlib>
- #include <string>
- #include <queue>
- #include <stack>
- #include <cstring>
- #define CL(a,b) memset(a,b,sizeof(a))
- #define ll __int64
- #define TEST cout<<"TEST ***"<<endl;
- #define INF 0x7ffffff0
- #define MOD 1000000007
- using namespace std;
- typedef struct myedge
- {
- int e,next;
- }E;
- E edge[];
- stack <int> st;
- int head[],ct,tim;
- int ti[],lo[],ins[],n,m;
- void inithead()
- {
- CL(head,-);
- tim=;
- ct=;
- }
- void addedge(int s,int e)
- {
- edge[ct].e=e;edge[ct].next=head[s];head[s]=ct++;
- }
- void targan(int i)
- {
- tim++;
- ti[i]=tim;lo[i]=tim;
- st.push(i);
- ins[i]=;
- int p=head[i];
- int v;
- while(p!=-)
- {
- v=edge[p].e;
- if(ins[v]==)
- {
- lo[i]=min(lo[v],lo[i]);
- }
- else if(ti[v]==)
- {
- targan(v);
- lo[i]=min(lo[i],lo[v]);
- }
- p=edge[p].next;
- }
- if(lo[i]==ti[i])
- {
- while(!st.empty()&&lo[st.top()]==ti[i])
- {
- ins[st.top()]=;
- st.pop();
- }
- }
- }
- int main()
- {
- while(scanf("%d %d",&n,&m)!=EOF)
- {
- if(n==&&m==)break;
- int i,j,a,b;
- inithead();
- CL(lo,);
- CL(ti,);
- CL(ins,);
- for(i=;i<m;i++)
- {
- scanf("%d %d",&a,&b);
- addedge(a,b);
- }
- targan();
- int re=;
- for(i=;i<=n;i++)
- {
- if(lo[i]==ti[i])re++;
- }
- // cout<<re<<endl;
- if(re==)printf("Yes\n");
- else printf("No\n");
- }
- return ;
- }
HDU 1269 裸奔的强联通分量的更多相关文章
- HDU 1269 迷宫城堡 【强联通分量(模版题)】
知识讲解: 在代码里我们是围绕 low 和 dfn 来进行DFS,所以我们务必明白 low 和 dfn 是干什么的? 有什么用,这样才能掌握他. 1. dfn[] 遍历到这个点的时间 2. ...
- hdu 1269 迷宫城堡(强联通分量,基础)
这是一道模版题 题目 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<string.h> #include ...
- 【强联通图 | 强联通分量】HDU 1269 迷宫城堡 【Kosaraju或Tarjan算法】
为了训练小希的方向感,Gardon建立了一座大城堡,里面有N个房间(N<=10000)和M条通道(M<=100000),每个通道都是单向的,就是说若称某通道连通了A房间和B房间,只说明 ...
- HDU 4685 Prince and Princess(二分匹配+强联通分量)
题意:婚配问题,但是题目并不要求输出最大匹配值,而是让我们输出,一个王子可以与哪些王妃婚配而不影响最大匹配值. 解决办法:先求一次最大匹配,如果有两个已经匹配的王妃,喜欢她们两个的有两个或者以上相同的 ...
- HDU 5934 强联通分量
Bomb Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- [vios1023]维多利亚的舞会3<强联通分量tarjan>
题目链接:https://vijos.org/p/1023 最近在练强联通分量,当然学的是tarjan算法 而这一道题虽然打着难度为3,且是tarjan算法的裸题出没在vijos里面 但其实并不是纯粹 ...
- Kosaraju算法---强联通分量
1.基础知识 所需结构:原图.反向图(若在原图中存在vi到vj有向边,在反向图中就变为vj到vi的有向边).标记数组(标记是否遍历过).一个栈(或记录顶点离开时间的数组). 算法描叙: :对 ...
- [CF #236 (Div. 2) E] Strictly Positive Matrix(强联通分量)
题目:http://codeforces.com/contest/402/problem/E 题意:给你一个矩阵a,判断是否存在k,使得a^k这个矩阵全部元素都大于0 分析:把矩阵当作01矩阵,超过1 ...
- UVa 11324 & 强联通分量+DP
题意: 一张无向图,求点集使其中任意两点可到达. SOL: 强联通分量中的点要么不选要么全都选,然后缩点DAG+DP 记录一下思路,不想写了...代码满天飞.
随机推荐
- js大文件分割上传
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...
- jquery1.9学习笔记 之选择器(基本元素三)
标签选择器("element") 描述: 选择所有与给出标签名相匹配的元素. 同功能的JS原生方法:getElementByTagName() 例子: 查找每个div元素. &l ...
- 在Mac上使用Nginx和FastCGI部署Flask应用
最近在学习Flask,本文介绍一下如何部署Flask开发的应用,同时也学习一下Nginx的使用,这只是在Mac上的一个实验. 应用 这里使用的应用就是官方的文档中给出的Flaskr. 安装Nginx ...
- Entity Framework With Mysql 之Code First
Entity Framework 4.0现在也可以支持Mysql数据库了,这篇文章将向你展示如何用Code First的方式来实现. 1.首先新建一个项目,在项目中用NuGet添加如下引用: 2.在w ...
- 这样就算会了PHP么?-9
PHP关于COOKIE的应用 <?php if (!isset($_COOKIE["visittime"])) { setcookie("visittime&quo ...
- 基于异步的MVC webAPI控制器
MVC – Task-based Asynchronous Pattern (TAP) – Async Controller and SessionLess Controller Leave a re ...
- TestNG基本注解(注释)
传统的方式来表示JUnit3中的测试方法是测试自己的名字前缀.标记一个类中的某些方法,具有特殊的意义,这是一个非常有效的方法,但命名不很好的扩展(如果我们想添加更多标签为不同的框架?),而非缺乏灵活性 ...
- .NET中 DAL+IDAL+Model+BLL+Web是什么意思
在.NET中 DAL+IDAL+Model+BLL+Web是什么意思 http://hi.baidu.com/hexiaojian/item/8d0c1a8e648546d75e0ec1e7 其实三层 ...
- 修改xcode代码风格设置
1.找到文件:/Applications/Xcode.app/Contents/PlugIns/IDECodeSnippetLibrary.ideplugin/Contents/Resources/S ...
- openStack kilo 手动Manual部署随笔记录
一 ,基于neutron网络资源主机(控制节点,网络节点,计算节点)网络规划配置 1, controller.cc 节点 网络配置截图