题目描述

“咚咚咚……”“查水表!”原来是查水表来了,现在哪里找这么热心上门的查表员啊!小明感动的热泪盈眶,开起了门……

妈妈下班回家,街坊邻居说小明被一群陌生人强行押上了警车!妈妈丰富的经验告诉她小明被带到了t区,而自己在s区。

该市有m条大道连接n个区,一条大道将两个区相连接,每个大道有一个拥挤度。小明的妈妈虽然很着急,但是不愿意拥挤的人潮冲乱了她优雅的步伐。所以请你帮她规划一条从s至t的路线,使得经过道路的拥挤度最大值最小。

输入输出格式

输入格式:

第一行四个数字n,m,s,t。

接下来m行,每行三个数字,分别表示两个区和拥挤度。

(有可能两个区之间有多条大道相连。)

输出格式:

输出题目要求的拥挤度。

输入输出样例

输入样例#1:

3 3 1 3                            
1 2 2
2 3 1
1 3 3

输出样例#1:
2

思路:最小瓶颈路模版题,添边后二分答案即可

源代码

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<string>
#include<cstring>
#include<cmath>
#include<ctime>
#include<algorithm>
#include<utility>
#include<stack>
#include<queue>
#include<vector>
#include<set>
#include<map>
#define EPS 1e-9
#define PI acos(-1.0)
#define INF 0x3f3f3f3f
#define LL long long
const int MOD = 1E9+7;
const int N = 100000+5;
const int dx[] = {-1,1,0,0};
const int dy[] = {0,0,-1,1};
using namespace std;
struct Edge {int to;int dis;
} edge[N];
int head[N],next[N];
int vis[N];
int n,m,start,endd;
int tot,mid;
void add_edge(int u,int v,int w) {tot++;edge[tot].to=v;edge[tot].dis=w;next[tot]=head[u];head[u]=tot;
}
bool dfs(int x) {if(x==endd)return true;bool flag=false;vis[x]=1;for(int i=head[x]; i!=-1; i=next[i]) {int y=edge[i].to;int w=edge[i].dis;if(vis[y]||w>mid) {continue;}flag=flag|dfs(y);}return flag;
}
int main() {cin>>n>>m;//n个点m条边cin>>start>>endd;//从start到enddint left=INF,right=-INF;memset(head,-1,sizeof(head));for(int i=1; i<=m; i++) {int u,v,w;scanf("%d%d%d",&u,&v,&w);left=min(left,w);right=max(right,w);add_edge(u,v,w);add_edge(v,u,w);}int ans;while(left<=right) {mid=(left+right)>>1;memset(vis,0,sizeof(vis));if(dfs(start)) {ans=mid;right=mid-1;}else {left=mid+1;}}cout<<ans<<endl;return 0;
}

营救(洛谷-P1396)相关推荐

  1. 并查集——营救(洛谷 P1396)

    题目选自洛谷P1396 看到最大的最小很多人想到二分,但是可以有更好的解法. 我们不妨用并查集维护这个图,将边从小到大排序,每次取出边权最小的边,若该边的起点与终点未在一个集合内,就将其合并.当源点与 ...

  2. 洛谷 P1396 营救

    题目链接 https://www.luogu.org/problemnew/show/P1396 题目描述 "咚咚咚--""查水表!"原来是查水表来了,现在哪里 ...

  3. 洛谷P1396 营救 题解

    题目:https://www.luogu.org/problemnew/show/P1396 分析: 这其实一看就是一个最短路的近似模板的题目,但我们要注意到两个区之间可能会有多条道路,所以说我们只需 ...

  4. 洛谷[P1396]营救 并查集

    题目地址http://www.luogu.org/problem/show?pid=1396 P1396拯救膜法师(欸??) 题目描述 "咚咚咚--""查水表!" ...

  5. 洛谷P1396营救(最小生成树)

    题目描述 "咚咚咚--""查水表!"原来是查水表来了,现在哪里找这么热心上门的查表员啊!小明感动的热泪盈眶,开起了门-- 妈妈下班回家,街坊邻居说小明被一群陌生 ...

  6. 洛谷-题解 P2672 【推销员】

    独门思路!链表加优先队列! 这题一望,贪心是跑不掉了,但是我贪心并不好,所以想到了一个复杂一些但思路更保稳的做法 思路: 1 因为是离线操作,所以我们可以倒着求,先求x=n的情况,因为那样直接就知道了 ...

  7. 洛谷 P1142 轰炸

    洛谷 P1142 轰炸 题目描述 "我该怎么办?"飞行员klux向你求助. 事实上,klux面对的是一个很简单的问题,但是他实在太菜了. klux要想轰炸某个区域内的一些地方,它们 ...

  8. 洛谷 P1387 最大正方形

    P1387 最大正方形 题目描述 在一个n*m的只包含0和1的矩阵里找出一个不包含0的最大正方形,输出边长. 输入输出格式 输入格式: 输入文件第一行为两个整数n,m(1<=n,m<=10 ...

  9. 洛谷P2763 试题库问题

    题目:https://www.luogu.org/problemnew/show/P2763 题目描述 «问题描述: 假设一个试题库中有n道试题.每道试题都标明了所属类别.同一道题可能有多个类别属性. ...

最新文章

  1. Geo-CNN的三维点云
  2. 避免神经网络过拟合的5种技术
  3. UITableView数据更新问题
  4. 开发中解决Access-Control-Allow-Origin跨域问题的Chrome神器插件,安装及使用
  5. 分布式服务Dubbo+Zookeeper安全认证
  6. 汇编 整数变量 浮点数变量 符号常量
  7. day12_oracle hint——SQL优化过程中常见Oracle中HINT的30个用法
  8. 关于fragment backstate的介绍
  9. cmake的使用 cmake不是内部或外部命令
  10. java 入门 博客园_javaweb入门
  11. 如何使用智能铃声避免在Android中令人尴尬的大声铃声
  12. 黑马程序员--IO【1】
  13. c++函数传参:值传递、指针传递、引用传递
  14. mingW与cygwin 异同
  15. mysql5.1编译安装centos7_02: mysql 5.7 编译安装 (centos7)
  16. Android性能优化-Render篇
  17. Java中== equals hashcode浅析[转]
  18. Xcode 证书生成、设置、应用
  19. idea双击打不开的解决方案
  20. Doris开启Stream Load记录

热门文章

  1. 只有22%的人做对了这道数据分析题,你来试试吗?
  2. 求你了,听我一句劝吧,这几个玩意就别学了!
  3. 烂代码解决方案:Java设计模式的魅力
  4. 再见,Eclipse
  5. 火热报名|5月15日线下沙龙上海站——“大促活动场景下的质量保障”主题
  6. JEEWX推出插件开发机制,现招募兴趣爱好者
  7. JEECG Framework 3.5.2 (快速开发平台) ACE版本发布
  8. Jeecg - MiniDao专题讲解公开课(2013-08-22 晚8:30-10:30 )
  9. Eclipse使用总结【更新中】
  10. Python模块开发【Distutils】