题目大意:

给定n个点m条边的有向图

有两个GPS 分别认为 A[i]到B[i] 的一条边的花费是P[i]、Q[i]

当当前走的边不是GPS认为的最短路上的边就会被警告

即两个GPS都不认为是最短路上的边时 会被警告两次

求从点1走到点n被警告次数最少是多少次

https://blog.csdn.net/oakley_/article/details/52510465

按P[i]反向建图 再从n跑最短路到1 然后遍历所有的边判断将不是最短路的边C[i]+1

Q[i]也同样 最后按C[i]从1跑最短路到n 得到的就是被最少警告的次数

为什么要反向建图跑最短路?

因为导航系统到了点2 点3 点4...之后仍然要导航到目标点n

那么就变成了点2到点n的最短路 点3到点n的最短路 ...

所以反向是要使得求出dis[i]为 点i到点n的最短路

若是正向会是 点1到点n的最短路 与要求不符

#include <bits/stdc++.h>
using namespace std;
#define INF 0x3f3f3f3f
#define LL long long
#define gcd(i,j) __gcd(i,j)
#define mem(i,j) memset(i,j,sizeof(i))
#define inc(i,j,k) for(int i=j;i<=k;i++)
#define dec(i,j,k) for(int i=j;i>=k;i--)
const int N=1e4+;
const int M=1e5+; int n,m,C[M];
int A[M],B[M],P[M],Q[M]; struct NODE { int to,len,nt; }e[M];
int head[N], tot;
void init() { tot=; mem(head,); }
void addE(int u,int v,int w) {
e[tot].to=v; e[tot].len=w;
e[tot].nt=head[u]; head[u]=tot++;
} int dis[N];
bool inq[N];
void SPFA(int s) {
mem(dis,INF);
queue<int>q;
while(!q.empty()) q.pop();
dis[s]=; q.push(s);
while(!q.empty()) {
int u=q.front(); q.pop();
inq[u]=;
for(int i=head[u];i;i=e[i].nt) {
int v=e[i].to;
if(dis[v]<=dis[u]+e[i].len) continue;
dis[v]=dis[u]+e[i].len;
if(!inq[v]) inq[v]=, q.push(v);
}
}
} void check(int u[],int v[],int w[],int st) {
init();
inc(i,,m) addE(u[i],v[i],w[i]);
SPFA(st);
inc(i,,m) if(dis[v[i]]!=dis[u[i]]+w[i]) C[i]++;
} int main()
{
while(~scanf("%d%d",&n,&m)) {
inc(i,,m) scanf("%d%d%d%d",&A[i],&B[i],&P[i],&Q[i]);
mem(C,);
check(B,A,P,n);
check(B,A,Q,n);
check(A,B,C,);
printf("%d\n",dis[n]);
} return ;
}

USACO 2014 US Open Dueling GPS's /// SPFA的更多相关文章

  1. 【BZOJ】3538: [Usaco2014 Open]Dueling GPS(spfa)

    http://www.lydsy.com/JudgeOnline/problem.php?id=3538 题意不要理解错QAQ,是说当前边(u,v)且u到n的最短距离中包含这条边,那么这条边就不警告. ...

  2. USACO Dueling GPS's

    洛谷 P3106 [USACO14OPEN]GPS的决斗Dueling GPS's 洛谷传送门 JDOJ 2424: USACO 2014 Open Silver 2.Dueling GPSs JDO ...

  3. BZOJ3538: [Usaco2014 Open]Dueling GPS

    3538: [Usaco2014 Open]Dueling GPS Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 59  Solved: 36[Subm ...

  4. Luogu P3106 [USACO14OPEN]GPS的决斗Dueling GPS's(最短路)

    P3106 [USACO14OPEN]GPS的决斗Dueling GPS's 题意 题目描述 Farmer John has recently purchased a new car online, ...

  5. USACO翻译:USACO 2014 DEC Silver三题

    USACO 2014 DEC SILVER 一.题目概览 中文题目名称 回程 马拉松 奶牛慢跑 英文题目名称 piggyback marathon cowjog 可执行文件名 piggyback ma ...

  6. USACO翻译:USACO 2014 FEB SILVER 三题

    USACO 2014 FEB SILVER 一.题目概览 中文题目名称 自动打字 路障 神秘代码 英文题目名称 auto rblock scode 可执行文件名 auto rblock scode 输 ...

  7. USACO翻译:USACO 2014 JAN三题(2)

    USACO 2014 JAN 一.题目概览 中文题目名称 队伍平衡 滑雪录像 滑雪场建设 英文题目名称 bteams recording skicourse 可执行文件名 bteams recordi ...

  8. USACO翻译:USACO 2014 JAN三题(1)

    USACO 2014 JAN 一.题目概览 中文题目名称 滑雪场设计 滑雪降速 滑雪场评级 英文题目名称 skidesign slowdown skilevel 可执行文件名 skidesign sl ...

  9. USACO翻译:USACO 2014 MARCH Silver三题

    USACO 2014 MARCH 一.题目概览 中文题目名称 农田灌溉 懒牛 牛叫 英文题目名称 irrigation lazy mooomoo 可执行文件名 irrigation lazy mooo ...

随机推荐

  1. grep与egrep命令

    greo -E 等同于 egrep grep常用两种方式 1.   grep -c python a.txt 2.   cat a.txt | grep -c python a.txt文件如下 i l ...

  2. Flink分布式缓存Distributed Cache

    1 分布式缓存 Flink提供了一个分布式缓存,类似于hadoop,可以使用户在并行函数中很方便的读取本地文件,并把它放在taskmanager节点中,防止task重复拉取. 此缓存的工作机制如下:程 ...

  3. python面试题之什么是Tkinter ?

    TKinter是一款很知名的Python库,用它我们可以制作图形用户界面.其支持不同的GUI工具和窗口构件,比如按钮.标签.文本框等等.这些工具和构件均有不同的属性,比如维度.颜色.字体等. > ...

  4. maxim - Android UI压力测试

    项目介绍 项目地址:https://github.com/zhangzhao4444/Maxim 与monkey对比优势: 快 稳:只进行有意义的操作,防误点状态栏,不会乱断网.卸载应用 支持脱机运行 ...

  5. Hibernate4教程二:基本配置

    可编程的配置方式一: 如果在配置cfg.xml的时候,不想在里面配置hbm.xml怎么办呢?可在程序里使用可编程的配置方式,也就是使用程序来指定在cfg.xml里面的配置信息,不推荐这种方式.如下: ...

  6. Javascript基础四(数组,字符,对象,日期)

    第一节:数组 1.数组的概念及定义     可以存放一组数据:          当需要操作多个数据时: 2.数组的创建方式 var arr1 = [1,2,3]; //字面量方式 var arr2 ...

  7. 第10篇用 ConfigMap 管理配置

        一.ConfigMap介绍管理配置: ConfigMap介绍 Secret 可以为 Pod 提供密码.Token.私钥等敏感数据:对于一些非敏感数据,比如应用的配置信息,则可以用 Config ...

  8. SpringMvc返回给前端数据@ResponseBody响应体【支持Ajax】

    1).在Controller中写 //@ResponseBody响应体是jackson包提供的 用于将Controller的方法返回的对象,通过HttpMessageConverter接口转换为指定格 ...

  9. springmvc.xml标配配置

    这里提供配置模板[绝不会多余]: <context:component-scan base-package="com.atguigu"></context:com ...

  10. pip飞起来了

    这里说下Windows下的修改方法,看了网上很多的教程发现都不行,尝试了好久终于发现了可行的方法. 找到python安装目录下的:\Lib\site-packages\pip\models\index ...