O - Navigation System CodeForces - 1321D
题目大意:有一个导航系统,会根据你当前的位置,规划到目的地的最短路线,给你一个有向图,和一条行驶路径,问你导航重新规划路径的最大次数和最小次数。
读题的时候题意特别不理解,何为最大次数,何为最小次数?
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的更多相关文章
- Codeforces 1321D Navigation System
题意 有个人要从\(s\)走到\(t\),经过的路径给定.导航系统每次会显示当前节点到\(t\)的最短路,有多条就显示其中之一.这个人如果按照导航走,那么啥都没变.如果没有按导航走导航就会重新导航.问 ...
- Codeforces Round #625 (Div. 2, based on Technocup 2020 Final Round) D. Navigation System(有向图,BFS,最短路)
题意: n 点 m 边有向图,给出行走路径,求行走途中到路径终点最短路变化次数的最小值和最大值 . 思路 : 逆向广搜,正向模拟. #include <bits/stdc++.h> usi ...
- Sherpa | Complete Navigation System 介绍与教材
这里的夏尔巴人在iPad上使用的一种新的视频. 正如其名称所暗示的,夏尔巴人是所有您的导航需求的整体解决方案. 夏尔巴人带来了每个接口的三个主要的导航元素结合在一起 - 导航栏,侧边栏和页脚粘. 每一 ...
- Bus Video System CodeForces - 978E (思维)
The busses in Berland are equipped with a video surveillance system. The system records information ...
- 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 ...
- B. Navigation System【CF 1320】
传送门 题目:简单理解就是,我们需要开车从s点到t点.车上有一个导航,如果当前点为x,则导航会自动为你提供一条从x到t的最短的路线(如果有多条,则随机选一条),每走到下一个点则会实时更新最短路线,当然 ...
- Codeforces Round #625 (Div. 2)
Contest Info Practice Link Solved A B C D E F 4/6 O O Ø Ø O 在比赛中通过 Ø 赛后通过 ! 尝试了但是失败了 - 没有尝试 Sol ...
- 1034 - Navigation
Global Positioning System (GPS) is a navigation system based on a set of satellites orbiting approxi ...
- 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 ...
随机推荐
- POJ1703 Find them Catch them 关于分集合操作的正确性证明 种类并查集
题目链接:http://poj.org/problem?id=1703 这道题和食物链那道题有异曲同工之处,都是要处理不同集合之间的关系,而并查集的功能是维护相同集合之间的关系.这道题中有两个不同的集 ...
- 【bzoj2049】[Sdoi2008]Cave 洞穴勘测——线段树上bfs求可撤销并查集
题面 2049: [Sdoi2008]Cave 洞穴勘测 Time Limit: 10 Sec Memory Limit: 259 MB Submit: 12030 Solved: 6024 Desc ...
- vue封装axios
一.安装axios npm install --save axios 二.在src下面创建文件夹api=>api.js(接口集合)+http.js(封装的请求) 三.在main.js中引用api ...
- MYSQL_批量更新
UPDATE categories SET display_order = CASE id WHEN 1 THEN 3 WHEN 2 THEN 4 WHEN 3 THEN 5 END, title = ...
- 命令行中运行Java字节码文件提示找不到或无法加载主类的问题
测试类在命令行操作,编译通过,运行时,提示 错误: 找不到或无法加载主类 java类 package com.company.schoolExercise; public class test7_3_ ...
- Ubuntu添加新用户并给普通用户赋予root新权限
添加新用户 首先用adduser命令添加普通用户: #adduser newusername 只有在root权限才可以添加新用户 修改密码: #passwd username 赋予root权限 方法1 ...
- 模块 heapq_堆排序
_heapq_堆排序 该模块提供了堆排序算法的实现.堆是二叉树,最大堆中父节点大于或等于两个子节点,最小堆父节点小于或等于两个子节点. 创建堆 heapq有两种方式创建堆, 一种是使用一个空列表,然后 ...
- centos7环境下安装nginx
安装所需环境 nginx是C语言开发,在Linux和windows环境上面都可以运行. 1.gcc安装 安装nginx需要将官网下载的代码进行编译,编译依赖gcc环境,如果没有gcc环境,需要先安装g ...
- Hystrix 使用手册 | 官方文档翻译
由于时间关系可能还没有翻译全,但重要部分已基本包含 本人水平有限,如有翻译不当,请多多批评指出,我一定会修正,谢谢大家.有关 ObservableHystrixCommand 我有的部分选择性忽略了, ...
- Hadoop调试记录(2)
自从上次调通hbase后很久没有碰hadoop了,今日想写一个mapreduce的小程序.于是先运行了下自带的wordcount示例程序,却报错了. 信息如下: kevin@ubuntu:~/usr/ ...