杭电5695
来源:互联网 发布:手机淘宝开店视频教程 编辑:程序博客网 时间:2024/05/22 00:43
拓扑排序+优先队列
#include <iostream>#include <cstdio>#include <cstring>#include <queue>#include <vector>using namespace std;#define maxn 1<<29int N,M;int degree[100010];int flag[100010];vector<int>mapp[100010];int main() {int T,i,a,b;long long Min,now,output;scanf("%d",&T);while(T--){Min=maxn;output=0;memset(flag,0,sizeof(flag));priority_queue<int,vector<int>,less<int> >s;scanf("%d%d",&N,&M);memset(degree,0,sizeof(degree));for(i=1;i<=N;i++)mapp[i].clear();for(i=1;i<=M;i++){scanf("%d%d",&a,&b);mapp[a].push_back(b);degree[b]++;}for(i=1;i<=N;i++){if(degree[i]==0){flag[i]=1;s.push(i);}}while(!s.empty()){now=s.top();s.pop();Min=min(Min,now);output+=Min;for(i=0;i<mapp[now].size();i++){degree[mapp[now][i]]--;if(degree[mapp[now][i]]==0&&flag[mapp[now][i]]==0){s.push(mapp[now][i]);flag[mapp[now][i]]=1;}}}printf("%I64d\n",output);}return 0;}
0 0
- 杭电5695
- 杭电
- 杭电
- 杭电
- 杭电 1234 和 杭电 2115
- 杭电2056之Rectangles 杭电
- 杭电ACM1061Rightmost Digit
- 杭电2099 7.11
- 杭电ACM 1003
- 杭电 ACM 2016
- 杭电ACM1466
- 杭电ACM1003
- 杭电ACM1225
- 杭电ACM2023
- 杭电ACM2602
- 杭电ACM2955
- 杭电ACM3198
- 杭电ACM2028 求教
- 一起talk C栗子吧(第一百五十五回:C语言实例--获取socket通信地址)
- 2016.05.24工作内容
- javascript之DOM编程正则表达式引入
- R语言-数组与数据框操作
- h5 与native
- 杭电5695
- LeetCode相关的KSum总结
- HDU 4940 Destroy Transportation system 无源汇有上下界的网络流
- Libgdx之ProgressBar (进度条) Slider(滑动条)
- 调和级数发散性的证明
- Javaweb开发中通过Servlet生成验证码图片
- 计算器(java源码)
- 小阿顺打坏蛋游戏介绍
- linux基本命令(33)——df命令