题意:每个人的工资至少888,然后有m个条件,前者比后者要多。求最少工资。

分析:

最开始的开邻接矩阵的肯定超时,如果dfs,会出现由于刚开始不是从入度为0的点出发,后期修改不了。比较麻烦。

正确方式是,用队列实现,不需要像普通队列一样,用vis数组标记,而是根据入度是否为0的标准加入队列。

 /*
#include <bits/stdc++.h> using namespace std; const int maxn = 10000+5;
int n,m; vector<int> G[maxn]; int c[maxn];
int d[maxn];
bool dfs(int u,int k) {
c[u] = -1;
//d[u] = k;
for(int i=0;i<G[u].size();i++) {
int v = G[u][i]; if(c[v]<0) return false;
else if(!c[v]&&!dfs(v,k+1)) return false; } c[u] = 1;
return true; } bool toposort() {
memset(c,0,sizeof(c));
for(int u=1;u<=n;u++) {
if(!c[u])
if(!dfs(u,0))
return false;
}
return true;
} int main()
{
freopen("in.txt","r",stdin);
while(scanf("%d%d",&n,&m)!=EOF) { for(int i=0;i<=n;i++)
G[i].clear(); for(int i=0;i<m;i++) {
int u,v;
scanf("%d%d",&u,&v);
G[v].push_back(u);
} memset(d,0,sizeof(d)); int sum = 0; if(toposort()) {
for(int i=1;i<=n;i++) {
sum+=d[i];
}
printf("%d\n",888*n+sum);
}
else puts("-1"); }
return 0;
}
*/ #include <bits/stdc++.h> using namespace std; const int maxn = +; vector<int> G[maxn];
int degree[maxn]; int main()
{
//freopen("in.txt","r",stdin);
int n,m;
while(scanf("%d%d",&n,&m)!=EOF) { for(int i=;i<=n;i++) {
G[i].clear();
}
memset(degree,,sizeof(degree)); for(int i=;i<m;i++) {
int u,v;
scanf("%d%d",&u,&v);
G[v].push_back(u);
degree[u]++;
} queue<pair<int,int> > Q; int cnt = ,ans = ;
for(int i=;i<=n;i++) {
if(!degree[i]) {
Q.push(make_pair(i,));
ans+=;
cnt++;
}
} while(!Q.empty()) {
pair<int,int> u = Q.front();
Q.pop(); for(int i=;i<G[u.first].size();i++) {
int v = G[u.first][i];
degree[v]--;
if(!degree[v]) {
Q.push(make_pair(v,u.second+));
ans += u.second + ;
cnt++;
}
} } if(cnt==n)
printf("%d\n",ans);
else puts("-1"); }
return ;
}

HDU 2647 拓扑排序的更多相关文章

  1. hdu 2647 (拓扑排序 邻接表建图的模板) Reward

    题目链接http://acm.hdu.edu.cn/showproblem.php?pid=2647 老板给员工发工资,每个人的基本工资都是888,然后还有奖金,然后员工之间有矛盾,有的员工希望比某员 ...

  2. hdu 2647拓扑排序 容器

    #include<stdio.h> #include<queue> #include<vector> #include<iostream> using ...

  3. hdu 2647拓扑排序 结构体模拟容器

    #include<stdio.h> #include<queue> #include<iostream> using namespace std; #define ...

  4. HDU 4857 拓扑排序 优先队列

    n个数,已经有大小关系,现给m个约束,规定a在b之前,剩下的数要尽可能往前移.输出序列 大小关系显然使用拓扑结构,关键在于n个数本身就有大小关系,那么考虑反向建图,优先选择值最大的入度为零的点,这样得 ...

  5. HDU 1811 拓扑排序 并查集

    有n个成绩,给出m个分数间的相对大小关系,问是否合法,矛盾,不完全,其中即矛盾即不完全输出矛盾的. 相对大小的关系可以看成是一个指向的条件,如此一来很容易想到拓扑模型进行拓扑排序,每次检查当前入度为0 ...

  6. HDU 5638 拓扑排序+优先队列

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5638 题意: 给你一个DAG图,删除k条边,使得能个得到字典序尽可能小的拓扑排序 题解: 把拓扑排序 ...

  7. 传递 hdu 5961 拓扑排序有无环~

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=5961 题目为中文,这里就不描述题意了. 思路: 从题目陈述来看,他将一个有向图用一个邻接矩阵来表示,并且分 ...

  8. hdu 4324 拓扑排序

    题意:给出一堆人的喜爱关系,判断有没有三角恋-_-|| 其实就是判断是否存在三条边的环. 一开始我是这么想的: 先拓扑排序,如果没有环那就直接No 如果有环?挑出环里的任意一个点(拓扑排序结束后不在拓 ...

  9. HDU 4324 (拓扑排序) Triangle LOVE

    因为题目说了,两个人之间总有一个人喜欢另一个人,而且不会有两个人互相喜欢.所以只要所给的图中有一个环,那么一定存在一个三元环. 所以用拓扑排序判断一下图中是否有环就行了. #include <c ...

随机推荐

  1. Win10磁盘利用率高达100%设置修改方法

    Win10磁盘利用率高达100%设置修改方法 Windows Defender关闭 Win10的Windows Defender已经变身成为安全中心,它的运行机制改成了即便是电脑中存在多个杀毒.防护软 ...

  2. TimesTen LINUX 安装日志

    $ ./setup.sh NOTE: Each TimesTen installation is identified by a unique instance name. The instance ...

  3. Java调度线程池ScheduleExecutorService(续)

    链接 Java线程池详解(一) Java线程池详解(二) Java调度线程池ScheduleExecutorService 上面列出了最近写的关于java线程池ScheduleExecutorServ ...

  4. Quartz.NET 作业调度使用

    Quartz.NET的使用方法有很多,今天使用Quartz.NET3.0.6的时候发现和2.0版本的语法不太一样,百度上找了一圈也没有找到解决办法 后来在GitHub上下载源代码解决了 实现每隔10s ...

  5. nginx 代理服务指令详解

    nginx 正向代理与反向代理说明图 超级形象说明. 正向代理指令: 1, resolver 这个用于DNS服务器的ip . DNS服务器的主要工作是进行域名解析,将域名映射为对应IP地址 resol ...

  6. Tor网络介绍

    Tor网络介绍 1.Tor的全称是“The Onion Router”,“An anonymous Internet communicaton system:通过Tor访问一个地址时,所经过的节点在T ...

  7. Prestashop使用心得

    如果对Prestashop好奇的小伙伴快点进来看看吧,我开始接触了Prestashop这个开源的系统,这个一个非常棒的电商系统.因为我对这个Prestashop系统完全没有了解,但是上网却看不到太多的 ...

  8. win7远程登录

    开始--附件--远程桌面连接 点击显示选项 填写信息,连接上了. 分配磁盘 计算机---右键----管理

  9. node使用https,webSocket开启wss

    1. 前言 看WEBRTC教程时使用到WebSocket来传输信令,node端使用了ws库来实现,但在浏览器端http无法获取本地媒体,必须使用https,使用https后webSocket 不能使用 ...

  10. springboot和mybatis集成,自动生成model、mapper,增加mybatis分页功能

    整体思路和http://www.cnblogs.com/mahuan2/p/5859921.html相同. 主要讲maven的pom.xml和一些配置变化,详细说明. 软件简介 Spring是一个流行 ...