题解【洛谷P1938】 [USACO09NOV]找工就业Job Hunt
题解
将路径连边\((x, y, d)\) ,将航线连边\((x, y, d - w)\)。其中线路是从\(x\)到\(y\),航线的费用为\(w\),\(d\)的含义如题面。
跑一遍\(SPFA\)最长路即可。
注意判断负环的情况,此时要输出\(-1\)。
代码
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <cctype>
#include <queue>
#define gI gi
#define itn int
#define File(x) freopen(x".in","r",stdin);freopen(x".out","w",stdout)
using namespace std;
inline int gi()
{
int f = 1, x = 0; char c = getchar();
while (c < '0' || c > '9') {if (c == '-') f = -1; c = getchar();}
while (c >= '0' && c <= '9') {x = x * 10 + c - '0'; c = getchar();}
return f * x;
}
int d, p, c, f, s, tot, head[1003], nxt[1003], ver[1003], edge[1003], in[1003], ans, dis[1003];
int vis[1003];
queue <int> q;
inline void add(int u, int v, int w)
{
ver[++tot] = v, edge[tot] = w, nxt[tot] = head[u], head[u] = tot;
}
inline void SPFA()
{
q.push(s);
vis[s] = 0;
dis[s] = d;
in[s] = 1;
while (!q.empty())
{
int u = q.front(); q.pop();
vis[u] = 0;
++in[u];//统计入队次数
if (in[u] > c) {puts("-1"); exit(0);}//负环
for (int i = head[u]; i; i = nxt[i])
{
int v = ver[i], w = edge[i];
if (dis[v] < dis[u] + w)//注意是小于号
{
dis[v] = dis[u] + w;
if (!vis[v])
{
vis[v] = 1;
q.push(v);
}
}
}
}
}
int main()
{
//File("P1938");
d = gi(), p = gI(), c = gI(), f = gI(), s = gI();
for (int i = 1; i <= p; i+=1)
{
int u = gI(), v = gI();
add(u, v, d);//连边
}
for (int i = 1; i <= f; i+=1)
{
int u = gi(), v = gI(), w = gi();
add(u, v, d - w);//连边
}
SPFA();//SPFA最长路
int maxx = 0;
for (int i = 1; i <= c; i+=1) maxx = max(maxx, dis[i]);
printf("%d\n", maxx);
return 0;
}
题解【洛谷P1938】 [USACO09NOV]找工就业Job Hunt的更多相关文章
- 洛谷 P1938 [USACO09NOV] 找工就业Job Hunt
这道题可以说是一个复活SPFA的题 因为数据比较小,SPFA也比较简单 那就复习(复读)一次SPFA吧 #include<iostream> #include<cstdio> ...
- 洛谷 1938 [USACO09NOV]找工就业Job Hunt
洛谷 1938 [USACO09NOV]找工就业Job Hunt 题目描述 Bessie is running out of money and is searching for jobs. Far ...
- P1938 [USACO09NOV]找工就业Job Hunt
P1938 [USACO09NOV]找工就业Job Hunt给边赋予价值,入边的权值为D-Ti,然后从起点开始跑最长路,如果钱的总数超过了D*C,也就是一定有一个城市走了两遍,则有正环,则输出-1 # ...
- luogu P1938 [USACO09NOV]找工就业Job Hunt
题目描述 奶牛们正在找工作.农场主约翰知道后,鼓励奶牛们四处碰碰运气.而且他还加了一条要求:一头牛在一个城市最多只能赚D(1≤D≤1000)美元,然后它必须到另一座城市工作.当然,它可以在别处工作一阵 ...
- [Luogu1938][USACO09NOV]找工就业Job Hunt
原题链接:https://www.luogu.org/problem/show?pid=1938 这一道题有一个比较难的点就是,这一张图上,是点上有权.既然点上有权的话,我们就不好一下子使用最短路了. ...
- 洛谷P3412 仓鼠找$Sugar\ II$题解(期望+统计论?)
洛谷P3412 仓鼠找\(Sugar\ II\)题解(期望+统计论?) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1327573 原题链接:洛谷P3412 ...
- 洛谷p3398仓鼠找suger题解
我现在爱死树链剖分了 题目 具体分析的话在洛谷blog里 这里只是想放一下改完之后的代码 多了一个son数组少了一个for 少了找size最大的儿子的for #include <cstdio&g ...
- 题解 洛谷P5018【对称二叉树】(noip2018T4)
\(noip2018\) \(T4\)题解 其实呢,我是觉得这题比\(T3\)水到不知道哪里去了 毕竟我比较菜,不大会\(dp\) 好了开始讲正事 这题其实考察的其实就是选手对D(大)F(法)S(师) ...
- 题解 洛谷P2959 【[USACO09OCT]悠闲漫步The Leisurely Stroll】
原题:洛谷P2959 不得不说这道题的图有点吓人,但实际上很多都没有用 通过题上说的“三岔路口”(对于每一个节点有三条连接,其中一条连接父节点,另外两条连接子节点)和数据,可以那些乱七八糟的路和牧场看 ...
随机推荐
- Java后端API调用身份验证的思考
在如今信息泛滥的数字时代中对产品安全性的要求越来越高了,就比如说今天要讨论的Java后端API调用的安全性,在你提供服务的接口中一定要保证调用方身份的有效性和合法性,不能让非法的用户进行调用,避免数据 ...
- PAT (Advanced Level) Practice 1055 The World's Richest (25 分) (结构体排序)
Forbes magazine publishes every year its list of billionaires based on the annual ranking of the wor ...
- Qt Gui 第十章
一.QListWidget.QTableWidget和QTreeWidget QTableWidget的item默认是可以编辑,其他两个的item默认是不可编辑.如果要将QTableWidget设置成 ...
- Django 查看原生的sql语句
python manage.py sqlmigrate your_app_name 0001 把your_app_name换成自己的app名字即可看到框架自动生成的创建表sql语句,于是我就这样看到了 ...
- RHEL 8 安装 Oracle 19c 注意问题
RedHat Enterprise Linux 8 版本静默安装 Oracle 数据库软件时,需注意的问题 来自博客园AskScuti 1. 提示缺少库文件 libnsl.so.1 2. 因着OS版本 ...
- 《Python学习手册 第五版》 -第14章 迭代和推导
承接上一章for循环的讲解,迭代和推导,是对for循环的一种深入的探索和扩展 本章重点内容 1.迭代 1)什么是迭代?都有哪些分类 2)常规的使用方法 3)多遍迭代器VS单遍迭代器 2.列表推导 1) ...
- 849. Dijkstra求最短路 I(模板)
给定一个n个点m条边的有向图,图中可能存在重边和自环,所有边权均为正值. 请你求出1号点到n号点的最短距离,如果无法从1号点走到n号点,则输出-1. 输入格式 第一行包含整数n和m. 接下来m行每行包 ...
- 【Unity|C#】基础篇(16)——文件读写(I/O类)
[笔记] 文件操作 File / FileInfo / FileStream https://www.runoob.com/csharp/csharp-file-io.html 文本读写 Stream ...
- C语言 Char* 和Char 用法
分类专栏: C语言 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/imxlw00/ar ...
- Real-time Compressive Tracking
这是RTC算法的文献blog Real-time Compressive Tracking Kaihua Zhang1, Lei Zhang1, Ming-Hsuan Yang2 1Dept. of ...