poj3249【拓扑排序】
// 求一条从入度为0的顶点到出度为0的顶点的一条路径,
// 路径上所有顶点权值和最大。
//图论里的链式前向星 的 建图原理 和 拓扑排序的一点知识就完全有能力打出来

//author keyboarder
//time 2016/4/23 21:52
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <algorithm>
#include <queue>
#include <math.h>
#include <queue>
#include <stack>
using namespace std;
#define INF 0x3f3f3f
#define pi acos(-1.0)
#define LL long long
#define mm 1000000007
int to;
int next;
};
asd q[N];
int head[N],tol;
int pre[N];
int out[N];
int val[N];
int dp[N];
int n,m;
{
q[tol].to=b;
q[tol].next=head[a];
head[a]=tol++;
}
{
queue<int>e;
while(!e.empty())
e.pop();
for(int i=1;i<=n;i++)
{
if(pre[i]==0)
{
pre[i]=-1;
e.push(i);
}
}
while(!e.empty())
{
int u=e.front();
e.pop();
for(int v=head[u];v!=-1;v=q[v].next)
{
int i=q[v].to;
dp[i]=max(dp[u]+val[i],dp[i]);
pre[i]--;
if(pre[i]==0)
{
pre[i]=-1;
e.push(i);
}
}
}
}
{
while(~scanf("%d%d",&n,&m))
{
for(int i=1;i<=n;i++)
{
scanf("%d",&val[i]);
}
int u,v;
tol=0;
memset(head,-1,sizeof(head));
memset(pre,0,sizeof(pre));
memset(out,0,sizeof(out));
for(int i=0;i<m;i++)
{
scanf("%d%d",&u,&v);
add(u,v);
pre[v]++;
out[u]++;
}
for(int i=1;i<=n;i++)
{
if(pre[i]==0)
{
dp[i]=val[i];
}
else
dp[i]=-INF;
}
for(int i=1;i<=n;i++)
{
if(out[i]==0)
ans=max(ans,dp[i]);
}
printf("%d\n",ans);
}
return 0;
}
poj3249【拓扑排序】的更多相关文章
- poj3249 拓扑排序+DP
题意:给出一个有向无环图,每个顶点都有一个权值.求一条从入度为0的顶点到出度为0的顶点的一条路径,路径上所有顶点权值和最大. 思路:因为是无环图,则对于每个点经过的路径求其最大权值有,dp[i]=ma ...
- POJ3249 Test for Job(拓扑排序+dp)
Test for Job Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 10137 Accepted: 2348 Des ...
- 算法与数据结构(七) AOV网的拓扑排序
今天博客的内容依然与图有关,今天博客的主题是关于拓扑排序的.拓扑排序是基于AOV网的,关于AOV网的概念,我想引用下方这句话来介绍: AOV网:在现代化管理中,人们常用有向图来描述和分析一项工程的计划 ...
- 有向无环图的应用—AOV网 和 拓扑排序
有向无环图:无环的有向图,简称 DAG (Directed Acycline Graph) 图. 一个有向图的生成树是一个有向树,一个非连通有向图的若干强连通分量生成若干有向树,这些有向数形成生成森林 ...
- 【BZOJ-2938】病毒 Trie图 + 拓扑排序
2938: [Poi2000]病毒 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 609 Solved: 318[Submit][Status][Di ...
- BZOJ1565 [NOI2009]植物大战僵尸(拓扑排序 + 最大权闭合子图)
题目 Source http://www.lydsy.com/JudgeOnline/problem.php?id=1565 Description Input Output 仅包含一个整数,表示可以 ...
- 图——拓扑排序(uva10305)
John has n tasks to do. Unfortunately, the tasks are not independent and the execution of one task i ...
- Java排序算法——拓扑排序
package graph; import java.util.LinkedList; import java.util.Queue; import thinkinjava.net.mindview. ...
- poj 3687(拓扑排序)
http://poj.org/problem?id=3687 题意:有一些球他们都有各自的重量,而且每个球的重量都不相同,现在,要给这些球贴标签.如果这些球没有限定条件说是哪个比哪个轻的话,那么默认的 ...
随机推荐
- Missing 'name' key attribute on element activity at AndroidMan
<uses-permission android:content="android.permission.CHANGE_WIFI_STATE" /> 这是android ...
- 李洪强经典面试案例33-如何面试 iOS 工程师
如何面试 iOS 工程师 推荐序 私下和很多朋友交流过这个话题,大部分求职者认为,我能做基本的 iOS 开发工作,就达到公司的要求了,殊不知公司招聘员工,更希望的是这个人能够在关键时候能够发挥一般 ...
- 用python编写的定向arp欺骗工具
刚学习了scapy模块的一些用法,非常强大,为了练手,利用此模块编写了一个arp欺骗工具,其核心是构造arp欺骗包.加了一个-a参数用于进行全网欺骗,先暂不实现.代码如下: #--*--coding= ...
- RabbitMQ/pika模块
简介 MessageQueue用于解决跨进程.跨线程.跨应用.跨网络的通信问题. RabbitMQ使用erlang开发,在windows上使用时要先安装erlang. 官方的示例比较容易理解,可以点这 ...
- 嵌入式开发之davinci--- 8168 question about capture PAL on 8168
http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/717/t/340483.aspx?pi199607=2
- sanic官方文档解析之websocket(网络套接字)和handle decorators(处理程序装饰器)
1,websocket(网络套接字) 在websocket上Sanic提供了一种简单使用的抽象化,来设置websocket(网络套接字) from sanic import Sanic from sa ...
- HDU 6068 Classic Quotation KMP+DP
Classic Quotation Problem Description When online chatting, we can save what somebody said to form h ...
- SignatureDoesNotMatch REST接口 在任何时间、任何地点、任何互联网设备上 在Header中包含签名
PutObject_关于Object操作_API 参考_对象存储 OSS-阿里云 https://help.aliyun.com/document_detail/31978.html OSS API ...
- LCS的几种求法
\(LCS:\) 对于两个长度均为 \(N\) 的数列 \(A\) 和 \(B\) ,存在一个数列 \(C\) 使得 \(C\) 既是 \(A\) 的子序列有事 \(B\) 的子序列,现在需要求这个数 ...
- ruby hash排序
参考文章:http://blog.csdn.net/ppp8300885/article/details/49933305 a={a:1,b:20,c:3,d:0,e:7}逆序 a.sort{|k,v ...