博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU2647 拓扑排序
阅读量:6277 次
发布时间:2019-06-22

本文共 1481 字,大约阅读时间需要 4 分钟。

  链接: , 不算复杂的拓扑排序。

  这道题不复杂,有一点需要考虑的就是当前保存在队列首的顶点的边删去时,会产生新的入度为0的顶点,这时产生的新的入度为0的顶点要比队列首的顶点要高一级,就是工资比他多1,这点处理就没什么事情了。

 

#include 
#include
#include
#include
#include
#include
#include
#include
using namespace std;#define LL __int64#define eps 1e-8#define INF 1e8#define lson l , m , rt << 1#define rson m + 1 , r , rt << 1 | 1const int MOD = 2333333; const int maxn = 10000 + 5;int Rank[maxn] , degree[maxn];vector
graph[maxn];int n , m;bool toposort(){ int i , j , u , v , tot; tot = 0; memset(Rank , 0 , sizeof(Rank)); memset(degree , 0 , sizeof(degree)); for(int i = 1 ; i <= n ; i++) for(int j = 0 ; j < graph[i].size() ; j++) degree[ graph[i][j] ] ++; queue
que; for(int i = 1 ; i <= n ; i++) { if(degree[i] == 0) { que.push(i); Rank[i] = 0; tot++; } } while(!que.empty()) { int u = que.front(); que.pop(); for(int i = 0 ; i < graph[u].size() ; i++) { int tmp = graph[u][i]; degree[tmp]--; if(degree[tmp] == 0) { que.push(tmp); Rank[tmp] = Rank[u] + 1; //就是这里,工资要多1 tot++; } } } return tot == n;}int main(){ int a , b; while(~scanf("%d %d" , &n , &m)) { for(int i = 1 ; i <= n ; i++) graph[i].clear(); while(m--) { scanf("%d %d" , &a , &b); graph[b].push_back(a); } if(toposort()) { int res = 888 * n; for(int i = 1 ; i <= n ; i++) res += Rank[i]; printf("%d\n" , res); } else { printf("-1\n"); } } return 0;}

 

转载于:https://www.cnblogs.com/H-Vking/p/4314198.html

你可能感兴趣的文章
Java核心技术卷I基础知识3.5.3 强制类型转换
查看>>
可与Mirai比肩的恶意程序Hajime,竟是为了保护IoT设备?
查看>>
《Spring Data 官方文档》6. Cassandra 存储库
查看>>
聊聊并发(十)生产者消费者模式
查看>>
R语言数据挖掘2.2.4.2 FP-growth算法
查看>>
人工智能概念诞生60年,哪些大牛堪称“一代宗师”?
查看>>
《游戏大师Chris Crawford谈互动叙事》一9.5 真实案例
查看>>
Mybatis与Spring整合连接MySQL
查看>>
GCC知识
查看>>
实验4 IIC通讯与EEPROM接口
查看>>
几个smarty小技巧
查看>>
Cocos2d-x3.2 Grid3D网格动作
查看>>
Java (for循环综合应用)
查看>>
NodeJs——(10)REST风格的路由规则
查看>>
软件可扩展性:来自星巴克的经验
查看>>
Java Cache系列之Guava Cache实现详解
查看>>
深入Log4J源码之LoggerRepository和Configurator
查看>>
System V 消息队列—复用消息
查看>>
vi常用快捷键
查看>>
Code Jam 2010 Round 1A Problem A
查看>>