博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Test for Job(POJ - 3249)
阅读量:6320 次
发布时间:2019-06-22

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

Description

Mr.Dog was fired by his company. In order to support his family, he must find a new job as soon as possible. Nowadays, It's hard to have a job, since there are swelling numbers of the unemployed. So some companies often use hard tests for their recruitment.

The test is like this: starting from a source-city, you may pass through some directed roads to reach another city. Each time you reach a city, you can earn some profit or pay some fee, Let this process continue until you reach a target-city. The boss will compute the expense you spent for your trip and the profit you have just obtained. Finally, he will decide whether you can be hired.
In order to get the job, Mr.Dog managed to obtain the knowledge of the net profit Vi of all cities he may reach (a negative Vi indicates that money is spent rather than gained) and the connection between cities. A city with no roads leading to it is a source-city and a city with no roads leading to other cities is a target-city. The mission of Mr.Dog is to start from a source-city and choose a route leading to a target-city through which he can get the maximum profit.

Input

The input file includes several test cases.

The first line of each test case contains 2 integers n and m(1 ≤ n ≤ \(10^5\), 0 ≤ m ≤ \(10^6\)) indicating the number of cities and roads.
The next n lines each contain a single integer. The ith line describes the net profit of the city i, Vi (0 ≤ |Vi| ≤ 20000)
The next m lines each contain two integers x, y indicating that there is a road leads from city x to city y. It is guaranteed that each road appears exactly once, and there is no way to return to a previous city.

Output

The output file contains one line for each test cases, in which contains an integer indicating the maximum profit Dog is able to obtain (or the minimum expenditure to spend)

Sample Input

6 51223341 21 32 43 45 6

Sample Output

7

Hint

avatar

这道题一开始记忆花搜索TLE,后SPFA也TLE,最后让每次进入队列的入度减一,入度为零的压入队列。

代码如下:

#include 
#include
#include
#include
#include
#include
const int maxn=1e5+10;const int maxm=1e6+10;#define INF 1e11#define LL long longusing namespace std;int n,m,in[maxn],val[maxn],flag[maxn];vector
po[maxn];LL vis[maxn];void init(){ memset(val,0,sizeof(val)); memset(in,0,sizeof(in)); memset(flag,0,sizeof(flag)); flag[0]=1; for(int i=0;i<=maxn;i++) vis[i]=-INF; vis[0]=0;}void spfa(){ queue
qu; qu.push(0); int temp1,temp2; while(!qu.empty()) { temp1=qu.front(); qu.pop(); for(int i=0;i

转载于:https://www.cnblogs.com/chendie/p/10468460.html

你可能感兴趣的文章
Shell脚本学习之sed详解
查看>>
bugDone
查看>>
Go:json(序列化、反序列化)
查看>>
Python 类的用法
查看>>
动态链接和静态链接的区别
查看>>
解决Python开发过程中依赖库打包问题的方法
查看>>
Git学习系列之命令大全(二)
查看>>
java基础(五)-----关键字static
查看>>
什么是PLI?
查看>>
[UIKit学习]04.关于HUD提示框,定时任务、开发关于资源常见问题
查看>>
文摘:OUTER JOIN
查看>>
http://git.oschina.net/chunanyong/springrain
查看>>
(转)Android中的Shape使用总结
查看>>
解决stackoverflow打开慢不能注册登录
查看>>
谈谈newDate()的简单使用 JS
查看>>
django-1-新手如何使用django
查看>>
Linq 基础
查看>>
windows应用程序框架及实例
查看>>
Hibernate 对象的三种状态
查看>>
SVN提交出现“< < < < < < < .mine’无效,路径中具有非法字符”的问题
查看>>