题目链接:Fight Against Traffic

题意:有n个点个m条双向边,现在给出两个点S和T并要增加一条边,问增加一条边且S和T之间距离不变短的情况有几种?

题解:首先dfs求一下S到其他点和T到其他点的最短路(好久不写有点手生@。@),然后遍历所有的建边的情况,假设在i和j两个点之间建边则要满足 ds[i] + 1 + dt[j] > ds[T] && ds[j] + 1 + dt[i] > ds[T]。

 #include<bits/stdc++.h>
using namespace std;
const int MAX_N = 1e3+;
const int INF = 1e9+;
int N,M,S,T;
vector<int> dir[MAX_N];
int vec1[MAX_N],vec2[MAX_N];
void bfs(int pos , int* vec){
fill(vec,vec+MAX_N,INF);
queue<int> que;
que.push(pos);
vec[pos] = ;
while(!que.empty()){
int t = que.front();
que.pop();
for(int i=;i<dir[t].size();i++){
int x = dir[t][i];
if(vec[x] > vec[t] + ){
vec[x] = vec[t] + ;
que.push(x);
}
}
}
//for(int i=1;i<5;i++)cout<<"!!"<<vec[i]<<endl;
}
int main(){
while(cin>>N>>M>>S>>T){
for(int i=;i<MAX_N;i++){
dir[i].clear();
}
for(int i=;i<M;i++){
int a,b;
scanf("%d%d",&a,&b);
dir[a].push_back(b);
dir[b].push_back(a);
}
bfs(S,vec1);
bfs(T,vec2);
int ans = ;
int dis = vec1[T];
for(int i=;i<=N;i++){
for(int j=i+;j<=N;j++){
if(vec1[i] + vec2[j] + >= dis && vec1[j] + vec2[i] + >= dis){
ans ++;
}
}
}
cout<<ans-M<<endl;
}
return ;
}

Codeforces 954D Fight Against Traffic(BFS 最短路)的更多相关文章

  1. [CodeForces954D]Fight Against Traffic(最短路)

    Description 题目链接 Solution 从起点和终点分别做一次最短路并记录结果 枚举每一条可能的边判断 Code #include <cstdio> #include < ...

  2. Codeforces 813C The Tag Game (BFS最短路)

    <题目链接> 题目大意:A.B两人在一颗树上,A在根节点1上,B在节点x上,现在他们轮流走,每次只能走一步,或者不走.A以尽可能靠近B的方式行走,B以尽可能远离A的方式走,B先开始走.问你 ...

  3. 最短路 CF954D Fight Against Traffic

    CF954D Fight Against Traffic 题意描述: 给你一张无向图,一共有n个点(2 <= n <= 1000),由m条边连接起来(1 <= m <= 100 ...

  4. POJ 2251 Dungeon Master (BFS最短路)

    三维空间里BFS最短路 #include <iostream> #include <cstdio> #include <cstring> #include < ...

  5. 【bzoj5049】[Lydsy九月月赛]导航系统 并查集+双向BFS最短路

    题目描述 给你一张 $n$ 个点 $m$ 条边的随机图,边权为1.$k$ 次询问两点间最短路,不连通则输出-1. 输入 第一行包含3个正整数n,m,k(2<=n<=100000,1< ...

  6. 【bzoj1189】[HNOI2007]紧急疏散evacuate BFS最短路+动态加边网络流

    题目描述 发生了火警,所有人员需要紧急疏散!假设每个房间是一个N M的矩形区域.每个格子如果是'.',那么表示这是一块空地:如果是'X',那么表示这是一面墙,如果是'D',那么表示这是一扇门,人们可以 ...

  7. BZOJ 1195 [HNOI2006]最短母串 (Trie图+状压+bfs最短路)

    BZOJ1195 LOJ10061 题目大意:给你$n$个模式串,求一个最短且字典序最小的文本串并输出这个串,$n<=12,len<=50$ 首先对所有模式串构造$Trie$图,$Trie ...

  8. UVa 1600 Patrol Robot (BFS最短路 && 略不一样的vis标记)

    题意 : 机器人要从一个m * n 网格的左上角(1,1) 走到右下角(m, n).网格中的一些格子是空地(用0表示),其他格子是障碍(用1表示).机器人每次可以往4个方向走一格,但不能连续地穿越k( ...

  9. CodeForcesEducationalRound40-D Fight Against Traffic 最短路

    题目链接:http://codeforces.com/contest/954/problem/D 题意 给出n个顶点,m条边,一个起点编号s,一个终点编号t 现准备在这n个顶点中多加一条边,使得st之 ...

随机推荐

  1. 《图解HTTP》

    第一章.了解web及网络基础 1.2 http的诞生 HTTP于1990年问世,那时候HTTP并没有作为正式的标准被建立,被称为HTTP/0.9 HTTP正式作为标准被公布是在1996年5月,版本被命 ...

  2. python if 判断

    #!/usr/bin/env python# -*- conding:utf-8 -*- if 条件: 执行1 执行2else: 执行3 if else 后面需要加: python严格缩进,内容1和内 ...

  3. docker基础:dockerfile的介绍

    Dockerfile 是一个文本格式的配置文件,用户可以使用 Dockerfile 快速创建自定义的镜像.我们会先介绍 Dockerfile 的基本结构及其支持的众多指令,并具体讲解通过执行指令来编写 ...

  4. Sql server bulk insert

    Bulk Insert Sql server 的bulk insert语句可以高效的导入大数据量的平面文件(txt,csv文件)到数据库的一张表中,其用法如下: bulk insert test fr ...

  5. 谨慎使用MyBatis自动生成Where语句

    最近监控到类似这样一个慢查询: select XX_time from XXOrderInfo WHERE ( OrderId is not null and OrderId = N'xxxx') x ...

  6. [POWERSHELL] [.net 3.5] [Windows Server] 在Windows Server上安装.NET3.5

    Install-WindowsFeature Net-Framework-Core -source \\network\share\sxs

  7. Android图形显示之硬件抽象层Gralloc【转】

    https://blog.csdn.net/yangwen123/article/details/12192401 FrameBuffer驱动程序分析文中介绍了Linux系统下的显示驱动框架,每个显示 ...

  8. 使用Swoole 构建API接口服务

    网上类似的文章已经很多了,我也是刚入门.从头开始学习.所以如果重复写文章阐释,反而会浪费时间,于是就自己动手构建了一个demo,使用swoole 的TCP 服务器接受TCP客户端的发来的http请求, ...

  9. 1.js基础(以通俗易懂的语言解释JavaScript)

    1.JavaScript组成: ECMAScript: 解释器.翻译 -->几乎没有兼容问题 DOM: Document Object Model -->有一些操作不兼容 BOM: Bro ...

  10. linux下apache中httpd.conf的ServerAdmin 是设置的什么?

    <VirtualHost 127.0.0.1:80> ServerAdmin ******@****.com DocumentRoot /home/aaa/sss ServerName s ...