CSU-1307-二分+dij
1307: City Tour
Submit Page Summary Time Limit: 1 Sec Memory Limit: 128 Mb Submitted: 593 Solved: 148
Description
Input
Output
对于每组测试数据输出满足Alice要求的从A到B的最短距离。
Sample Input
3 3 1 2
1 2 80
1 3 40
2 3 50
3 3 1 2
1 2 90
1 3 10
2 3 20
4 5 1 4
1 2 8
1 4 9
1 3 10
2 4 7
3 4 8
Sample Output
90
30
15
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<iostream>
#include<map>
#include<functional>
#include<queue>
using namespace std;
#define pii pair<int,int>
#define mp make_pair
#define eps 1e-6
#define inf 0x3f3f3f3f
struct Edge{
int u,v,w,next;
}e1[];
int first1[];
int tot1;
void add1(int u,int v,int w){
e1[tot1].u=u;
e1[tot1].v=v;
e1[tot1].w=w;
e1[tot1].next=first1[u];
first1[u]=tot1++;
} int d1[];
bool vis[];
bool dij(int s,int t,int d[],Edge e[],int first[],int x)
{
memset(vis,,sizeof(vis));
memset(d,inf,sizeof(int)*);
priority_queue<pii,vector<pii>,greater<pii> >q;
d[s]=;
q.push(mp(,s));
while(!q.empty()){
int u=q.top().second;
q.pop();
if(vis[u]) continue;
vis[u]=;
for(int i=first[u];i+;i=e[i].next){
if(e[i].w>x) continue;
if(d[e[i].v]>d[u]+e[i].w){
d[e[i].v]=d[u]+e[i].w;
q.push(mp(d[e[i].v],e[i].v));
}
}
}
return d[t]!=inf;
}
int main()
{ int t,n,m,i,j,k,s,cas;
int u,v,w;
while(cin>>n>>m>>s>>t){
tot1=;
memset(first1,-,sizeof(first1));
while(m--){
scanf("%d%d%d",&u,&v,&w);
add1(u,v,w);
add1(v,u,w);
}
int l=,r=;
while(l<r){//cout<<l<<' '<<r<<endl;
int mid=l+(r-l)/;
if(dij(s,t,d1,e1,first1,mid)) r=mid;
else l=mid+;
}
dij(s,t,d1,e1,first1,l);
cout<<d1[t]<<endl;
}
return ;
}
CSU-1307-二分+dij的更多相关文章
- CSU 1307 最短路+二分
题目大意: 帮忙找到一条a到b的最短路,前提是要保证路上经过的站点的最大距离尽可能短 这道题居然要用到二分...完全没去想过,现在想想求最大距离的最小值确实是... 这里不断二分出值代入spfa()或 ...
- 基于visual Studio2013解决面试题之1307二分查找
题目
- P1462 通往奥格瑞玛的道路【二分+Dij】
P1462 通往奥格瑞玛的道路 提交 29.89k 通过 6.88k 时间限制 1.00s 内存限制 125.00MB 题目提供者gconeice 难度提高+/省选- 历史分数100 提交记录 查看题 ...
- POJ 3662 Telephone Lines (分层图)
Telephone Lines Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6785 Accepted: 2498 D ...
- 题解 guP1948 【[USACO08JAN]电话线Telephone Lines】
二分+dij题目 首先读一遍题目,一定要仔细读(不要问我为什么,我就是受害者qwq 你会发现最终的费用是由最长的电话线决定的,而非电话线长度和. 至此就有了一个基本思路--枚举(二分)出可能的最长电话 ...
- 【POJ3662】Telephone Lines dij + 二分答案
题目大意:给定一个 N 个顶点,M 条边的无向图,求一条从 1 号节点到 N 号节点之间的路径,使得第 K+1 大的边权最小,若 1 与 N 不连通,输出 -1. 最小化最大值一类的问题,采用二分答案 ...
- 【洛谷P1462】【二分+堆优化dij】
题目描述 在艾泽拉斯,有n个城市.编号为1,2,3,...,n. 城市之间有m条双向的公路,连接着两个城市,从某个城市到另一个城市,会遭到联盟的攻击,进而损失一定的血量. 每次经过一个城市,都会被收取 ...
- CSU 1553 Good subsequence(RMQ问题 + 二分)
题目链接:http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1553 Description Give you a sequence of n nu ...
- CSU OJ PID=1514: Packs 超大背包问题,折半枚举+二分查找。
1514: Packs Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 61 Solved: 4[Submit][Status][Web Board] ...
- CSU 1817 Bones’s Battery Submit(二分+Floyd)
Bones's Battery Submit [题目链接]Bones's Battery Submit [题目类型]二分+Floyd &题意: 有n个点,m条边,从点ui到点vi的费电量是di ...
随机推荐
- oracle RMAN复制数据库
列出创建副本数据库的目的 • 选择用于复制数据库的方法 • 使用RMAN 复制数据库 • 使用RMAN 备份复制数据库 • 基于正在运行的实例复制数据库 使用副本数据库 • 使用副本数据库可执行以 ...
- 无法从U盘启动的解决方案
联想台式机无法从U盘启动的解决方案 F1进入lenovo bios 选择 StartUp 选项卡 1) 发现 USB FDD 已处于第一项,再把 USB Key 调到启动第二项 2) 把 boot m ...
- RBAC权限模型——项目实战
RBAC权限模型——项目实战
- Linux下多线程下载工具myget
[root@superdba ~]# mytgetMytget 0.0.99: A download accelerator for GNU/LinuxUsage: mytget [options]. ...
- [Deep Learning]任意层cnn的matlab版本实现
之前实现了一层的卷积神经网络,又实现了两层的卷积神经网络,接下来把cnn扩展到任意层就不难了. 这难道就是传说中的“道生一,一生二,二生三,三生万物”么?=.= 代码还是在github上. 比较有趣的 ...
- CSS Backgrounds(背景)
CSS Backgrounds(背景) CSS 背景属性用于定义HTML元素的背景. CSS 属性定义背景效果: background-color background-image backgroun ...
- Sublime text3:安装插件SublimeREPL解决不支持input
Sublime text3:安装插件SublimeREPL解决不支持input 安装SublimeREPL 1,调用ctrl+shift+p 输入install回车: 2,输出:sublimerepl ...
- GET 对比 POST
HTTP 方法:GET 对比 POST HTTP 消息 标签列表(字母排序) 两种最常用的 HTTP 方法是:GET 和 POST. 什么是 HTTP? 超文本传输协议(HTTP)的设计目的是保证客户 ...
- SVN一直提示需要clean up
无论到那一级都提示clean up, 这是陷入clean up 死循环的结果. 解决办法: 使用任何一款可以连sqllit 的数据库管理软件例如(Navicat Premium),连入 项目跟目录/. ...
- COGS 723. [SDOI2007] 超级数组
★★☆ 输入文件:arr.in 输出文件:arr.out 简单对比 时间限制:1 s 内存限制:3 MB Source: SDOI2007 Day2[问题描述] 一般的数组大家都经常 ...