题目大意:有一个导航系统,会根据你当前的位置,规划到目的地的最短路线,给你一个有向图,和一条行驶路径,问你导航重新规划路径的最大次数和最小次数。

读题的时候题意特别不理解,何为最大次数,何为最小次数?

1 比如说当在一个点时,到终点的最短路线就那一个,也就说我只能走这一条,不用重新规划。

2 在一个点到终点的最短路径有多个,并且你下次要走的正好的其中的一个,这个时候,可以重新规划,也可以不重新规划。

3 在一个点到终点最短的路径中,你下次要走的点不是其中的一个,这个时候必须重新规划。

(有点绕,但是,,他就这么个意思)

思路:首先我们应该知道每个点到终点的最短距离,所以---反向图跑最短路

然后当在正向图中:

      对路径中的某个点x,如果下次要走的点是与x相邻的点中最短的,并且唯一,那么不用重新规划。

                如果不唯一:可以重新规划,也可以不重新规划,所以maxx++.

                如果下次要走的点不是与x相邻的点中最短的 ,必须重新规划。maxx++,minn++;

#include<bits/stdc++.h>
using namespace std;
const int N=2E5+;
const int INF=1e9+;
int p[N];
int dis[N];
bool mark[N];
struct node{
int x,y;
bool friend operator<(const node x1,const node y1){
return x1.y>y1.y;
}
};
vector<node>mp1[N],mp2[N];
void djstrea(int s){
memset(mark,,sizeof(mark));
memset(dis,INF,sizeof(dis));
priority_queue<node>que;
dis[s]=;
que.push({s,});
while(que.size()){
node xx=que.top();
que.pop();
if(mark[xx.x]==) continue ;
mark[xx.x]=;
for(int i=;i<mp1[xx.x].size();i++){
int dx=mp1[xx.x][i].x;
int dy=mp1[xx.x][i].y;
if(mark[dx]==&&dis[dx]>dis[xx.x]+dy){
dis[dx]=dis[xx.x]+dy;
que.push({dx,dis[dx]});
}
}
}
}
int main(){
int n,m;
cin>>n>>m;
for(int i=;i<=m;i++){
int x,y;
cin>>x>>y;
mp1[y].push_back({x,});
mp2[x].push_back({y,});
}
int k;
cin>>k;
for(int i=;i<=k;i++) cin>>p[i];
for(int i=;i<=n;i++) dis[i]=INF;
djstrea(p[k]);
int minn=,maxx=;
for(int i=;i<k;i++){
int c=dis[p[i+]];
int cnt1=,cnt2=;
int x1=p[i];
for(int j=;j<mp2[x1].size();j++){
if(dis[mp2[x1][j].x]==c) cnt1++;
if(dis[mp2[x1][j].x]<c) cnt2++;
}
if(cnt2!=){
minn++;
maxx++;
}
else if (cnt1>) maxx++;
}
cout<<minn<<" "<<maxx<<endl;
return ;
}

O - Navigation System CodeForces - 1321D的更多相关文章

  1. Codeforces 1321D Navigation System

    题意 有个人要从\(s\)走到\(t\),经过的路径给定.导航系统每次会显示当前节点到\(t\)的最短路,有多条就显示其中之一.这个人如果按照导航走,那么啥都没变.如果没有按导航走导航就会重新导航.问 ...

  2. Codeforces Round #625 (Div. 2, based on Technocup 2020 Final Round) D. Navigation System(有向图,BFS,最短路)

    题意: n 点 m 边有向图,给出行走路径,求行走途中到路径终点最短路变化次数的最小值和最大值 . 思路 : 逆向广搜,正向模拟. #include <bits/stdc++.h> usi ...

  3. Sherpa | Complete Navigation System 介绍与教材

    这里的夏尔巴人在iPad上使用的一种新的视频. 正如其名称所暗示的,夏尔巴人是所有您的导航需求的整体解决方案. 夏尔巴人带来了每个接口的三个主要的导航元素结合在一起 - 导航栏,侧边栏和页脚粘. 每一 ...

  4. Bus Video System CodeForces - 978E (思维)

    The busses in Berland are equipped with a video surveillance system. The system records information ...

  5. Error Correct System CodeForces - 527B

    Ford Prefect got a job as a web developer for a small company that makes towels. His current work ta ...

  6. B. Navigation System【CF 1320】

    传送门 题目:简单理解就是,我们需要开车从s点到t点.车上有一个导航,如果当前点为x,则导航会自动为你提供一条从x到t的最短的路线(如果有多条,则随机选一条),每走到下一个点则会实时更新最短路线,当然 ...

  7. Codeforces Round #625 (Div. 2)

    Contest Info Practice Link Solved A B C D E F 4/6 O O Ø  Ø     O 在比赛中通过 Ø 赛后通过 ! 尝试了但是失败了 - 没有尝试 Sol ...

  8. 1034 - Navigation

    Global Positioning System (GPS) is a navigation system based on a set of satellites orbiting approxi ...

  9. Roomblock: a Platform for Learning ROS Navigation With Roomba, Raspberry Pi and RPLIDAR(转)

      What is this? "Roomblock" is a robot platform consists of a Roomba, a Raspberry Pi 2, a ...

随机推荐

  1. hdu4587 Two Nodes 求图中删除两个结点剩余的连通分量的数量

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4587 题目给了12000ms,对于tarjan这种O(|V|+|E|)复杂度的算法来说,暴力是能狗住的 ...

  2. 「面试指南」解读JavaScript原始数据类型

    JavaScript 有 7 种原始数据类型: String(字符型) Number(数值型) Boolean(布尔值型) Undefined Null Object(对象型) Symbol(符号型, ...

  3. 【HDU2883】kebab——最大流

    题目链接 把"时间粒子"作为最大流的计算结果 设置超级源点为 0 顾客点范围为 1 - 204 时间点 205 - 610 超级汇点 615 超级源点与所有顾客连线,容量为需求的烤 ...

  4. [单调栈] 2018-2019 ACM-ICPC, China Multi-Provincial Collegiate Programming Contest-Maximum Element In A Stack

    题目:https://codeforces.com/gym/102222/problem/A Maximum Element In A Stack time limit per test 10.0 s ...

  5. Rasa Stack:创建支持上下文的人工智能助理和聊天机器人教程

    相关概念 Rasa Stack 是一组开放源码机器学习工具,供开发人员创建支持上下文的人工智能助理和聊天机器人: • Core = 聊天机器人框架包含基于机器学习的对话管理 • NLU = 用于自然语 ...

  6. coding++:java-Date日期转换工具类

    Code: package com.tree.ztree_demo.utils; import org.springframework.util.ObjectUtils; import java.te ...

  7. POJ旅行商问题——解题报告

    旅行商问题 总时间限制: 1000ms 内存限制: 65536kB 描述 某国家有n(1<=n<=10)座城市,给定任意两座城市间距离(不超过1000的非负整数).一个旅行商人希望访问每座 ...

  8. Collections.sort详解

    Collections.sort(list, new PriceComparator());的第二个参数返回一个int型的值,就相当于一个标志,告诉sort方法按什么顺序来对list进行排序. Com ...

  9. Thinking in Java学习杂记(第7章)

    将一个方法调用同一个方法主体连接到一起就称为"绑定"(Binding).若在程序运行以前执行绑定,就叫做"早期绑定".而Java中绑定的所有方法都采用后期绑定技 ...

  10. 【WPF学习】第六十二章 构建更复杂的模板

    在控件模板和为其提供支持的代码之间又一个隐含约定.如果使用自定义控件模板替代控件的标准模板,就需要确保新模板能够满足控件的实现代码的所有需要. 在简单控件中,这个过程比较容易,因为对模板几乎没有(或完 ...