题目1448:Legal or Not(有向无环图判断——拓扑排序问题)
题目链接:http://ac.jobdu.com/problem.php?pid=1448
详解链接:https://github.com/zpfbuaa/JobduInCPlusPlus
参考代码:
//
// 1448 Legal or Not.cpp
// Jobdu
//
// Created by PengFei_Zheng on 20/04/2017.
// Copyright © 2017 PengFei_Zheng. All rights reserved.
// #include <stdio.h>
#include <iostream>
#include <algorithm>
#include <string.h>
#include <cmath>
#include <vector>
#include <queue>
#define MAX_SIZE 110
using namespace std; vector<int> edge[MAX_SIZE];
queue<int> q;
int inDegree[MAX_SIZE]; int n, m; int main(){
while(scanf("%d%d",&n,&m)!=EOF){
if(==n && ==m) break;
for(int i = ; i < n ; i++){
inDegree[i] = ;
edge[i].clear();
}
while(m--){
int a, b;
scanf("%d%d",&a,&b);
inDegree[b]++;
edge[a].push_back(b);
}
while(!q.empty()) {
q.pop();
}
for(int i = ; i < n ; i++){//add all the inDegree node into the queue
if(inDegree[i] == ){
q.push(i);
}
}
int ans = ;
while(!q.empty()){//find all the inDegree == 0 and remove it
int nowP = q.front();
q.pop();
ans++;
for(int i = ; i < edge[nowP].size() ; i++){//and also reduce the node next to the removed node
inDegree[edge[nowP][i]]--;
if(inDegree[edge[nowP][i]] == ){//if inDegree is zero then put this node into the queue
q.push(edge[nowP][i]);
}
}
}
ans == n ? printf("YES\n") : printf("NO\n");
}
return ;
} /**************************************************************
Problem: 1448
User: zpfbuaa
Language: C++
Result: Accepted
Time:10 ms
Memory:1524 kb
****************************************************************/
题目1448:Legal or Not(有向无环图判断——拓扑排序问题)的更多相关文章
- C#实现有向无环图(DAG)拓扑排序
对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出现在 ...
- 算法87-----DAG有向无环图的拓扑排序
一.题目:课程排表---210 课程表上有一些课,是必须有修学分的先后顺序的,必须要求在上完某些课的情况下才能上下一门.问是否有方案修完所有的课程?如果有的话请返回其中一个符合要求的路径,否则返回[] ...
- CSU 1804: 有向无环图(拓扑排序)
http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1804 题意:…… 思路:对于某条路径,在遍历到某个点的时候,之前遍历过的点都可以到达它,因此在 ...
- 【拓扑】【宽搜】CSU 1084 有向无环图 (2016湖南省第十二届大学生计算机程序设计竞赛)
题目链接: http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1804 题目大意: 一个有向无环图(DAG),有N个点M条有向边(N,M<=105 ...
- 图->有向无环图->拓扑排序
文字描述 关于有向无环图的基础定义: 一个无环的有向图称为有向无环图,简称DAG图(directed acycline graph).DAG图是一类较有向树更一般的特殊有向图. 举个例子说明有向无环图 ...
- 网络流24题 第三题 - CodeVS1904 洛谷2764 最小路径覆盖问题 有向无环图最小路径覆盖 最大流 二分图匹配 匈牙利算法
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - CodeVS1904 题目传送门 - 洛谷2764 题意概括 给出一个有向无环图,现在请你求一些路径,这些路径 ...
- CSU 1804 - 有向无环图 - [(类似于)树形DP]
题目链接:http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1804 Bobo 有一个 n 个点,m 条边的有向无环图(即对于任意点 v,不存在从点 ...
- 2016 湖南省省赛B题《有向无环图》
题目链接[https://vjudge.net/problem/CSU-1804] 题意: 给出一个有向无环图,然后让你算下面的结果,count(i,j)表示i->j之间的路径条数. 题解: 根 ...
- Taxi Cab Scheme UVALive - 3126 最小路径覆盖解法(必须是DAG,有向无环图) = 结点数-最大匹配
/** 题目:Taxi Cab Scheme UVALive - 3126 最小路径覆盖解法(必须是DAG,有向无环图) = 结点数-最大匹配 链接:https://vjudge.net/proble ...
随机推荐
- C# 随机获取国内IP
调用getRandomIp()方法即可Framework3.5 +使用LINQ public string getRandomIp() { /* int[][] 这个叫交错数组,白话文就是数组的数组. ...
- lnmp手动新建虚拟机
1.在home/wwwroot/zhongjie 新建zhongjie文件夹 2.在usr/local/nginx/conf/vhost/zhongjie.conf 新建配置文件zhongj ...
- IntelliJ IDEA删除代码的注释
由于反编译出的Java每一行都有注释,因此查找批量替换 搜索框,正则表达式 (/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/|[ \t]*//.*) 或者 (/\* ...
- linux alias使用
安装一些软件 python redis mysql jdk,都需要添加环境变量,一个路径添加到了环境变量,就可以直接在linux控制台输入 xx命令. 否则不添加环境变量,使用xx就会提示找不到命令 ...
- [web] spring boot 整合MyBatis
1.maven依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="h ...
- Tomcat 8
JDTCompiler.java /** * Compile the jsp file from the current engine context. As an side- effect, * t ...
- IIS------项目配置到IIS后报500错误
转载: http://blog.csdn.net/yinjingjing198808/article/details/7185453 错误一: HTTP Error 500.19 - Internal ...
- MvvmLight学习篇—— Mvvm Light Toolkit for wpf/silverlight系列(导航)
系列一:看的迷迷糊糊的 一.Mvvm Light Toolkit for wpf/silverlight系列之准备工作 二.Mvvm Light Toolkit for wpf/silverlight ...
- 删除ORACLE目录OCI.dll文件无法删除 (转)
删除ORACLE目录OCI.dll文件无法删除 今天准备把虚拟机里的10g卸载安装11g来研究一些新特性 卸载没有用自带的UnInstall工具之前看warehouse的讲课视频凭记忆手动卸载了下删除 ...
- 先安装VS2017再安装VS2015遇到的CMake问题
先安装了VS2017,后来有需求安装VS2015,安装VS2015的时候遇到下图问题,但是控制面板里面看不到Microsoft Visual C++ 2015 Redistributable的项目 我 ...