题意:最短路上有一条高度限制,给起点和最大高度,求满足高度最大情况下,最短路的距离

不明白为什么枚举所有高度就不对

 #include<cstdio>
#include<cstring>
#include<algorithm>
const int maxint=;
int c[][][],dist[],H[];
using namespace std;
int n,line;
int i,j,k;
int st,ed,mid;
int t=;
int path[];
int visit[];
bool dijkstra()
{
bool s[];
for(int i=;i<=n;i++)
{
s[i]=;
if(c[st][i][]>=mid)
dist[i]=c[st][i][];
else dist[i]=maxint;
path[i]=st;
}
s[st]=;
for(int i=;i<n;i++)
{
int temp=maxint;
int u=st;
for(int j=;j<=n;j++)
if(!s[j]&&temp>dist[j]&&c[path[j]][j][]>=mid)
{
temp=dist[j];
u=j;
}
if(temp==maxint) break;
s[u]=;
if(u==ed) return true;
for(int j=;j<=n;j++)
if(!s[j]&&c[u][j][]!=maxint&&c[u][j][]>=mid)
if(dist[j]>dist[u]+c[u][j][])
{
dist[j]=dist[u]+c[u][j][];
path[j]=u;
}
}
return false;
}
int main()
{
#ifndef ONLINE_JUDGE
freopen("1.in","r",stdin);
#endif
while(scanf("%d%d",&n,&line)!=EOF&&n&&line)
{
int tot=;
memset(H,,sizeof(H));
H[]=;
if(t) printf("\n");
printf("Case %d:\n",++t);
for(i=;i<=n;i++)
for(j=;j<=n;j++)
{
c[i][j][]=(i==j?:maxint);
c[i][j][]=-;
}
for(i=;i<=line;i++)
{
int p,q,len,h;
scanf("%d%d%d%d",&q,&p,&h,&len);
if(h==-)
{
c[p][q][]=c[q][p][]=maxint;
c[p][q][]=c[q][p][]=len;
continue;
}
if(c[p][q][]<h)
{
c[p][q][]=c[q][p][]=h;
c[p][q][]=c[q][p][]=len;
}
}
int tall;
scanf("%d%d%d",&st,&ed,&tall);
/*if(st==ed)
{
printf("maximum height = %d\n",tall);
printf("length of shortest route = 0\n");
continue;
}*/
/*H[tot++]=tall;
sort(H,H+tot);
int ans=0;
bool flag=0;
for(i=tot-1;i>=0;i--)
{
if(H[i]>tall) continue;
mid=H[i];
if(dijkstra())
{
flag=1;
ans=dist[ed];
break;
}
}*/
int first=;
int ans;
mid=(first+tall)>>;
while(first<=tall)
{
if(dijkstra())
{
ans=dist[ed];
first=mid+;
}
else
tall=mid-;
mid=(first+tall)>>;
}
if(tall==) printf("cannot reach destination\n");
else
{
printf("maximum height = %d\n",tall);
printf("length of shortest route = %d\n",ans);
}
}
return ;
}

hdu 2962 最短路+二分的更多相关文章

  1. HDU - 2962 Trucking SPFA+二分

    Trucking A certain local trucking company would like to transport some goods on a cargo truck from o ...

  2. Trucking(HDU 2962 最短路+二分搜索)

    Trucking Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  3. ACM: HDU 2544 最短路-Dijkstra算法

    HDU 2544最短路 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Descrip ...

  4. UESTC 30 &&HDU 2544最短路【Floyd求解裸题】

    最短路 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  5. POJ 3662 Telephone Lines【Dijkstra最短路+二分求解】

    Telephone Lines Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7214   Accepted: 2638 D ...

  6. hdu 5521 最短路

    Meeting Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total ...

  7. poj 2391 Ombrophobic Bovines 最短路 二分 最大流 拆点

    题目链接 题意 有\(n\)个牛棚,每个牛棚初始有\(a_i\)头牛,最后能容纳\(b_i\)头牛.有\(m\)条道路,边权为走这段路所需花费的时间.问最少需要多少时间能让所有的牛都有牛棚可待? 思路 ...

  8. Luogu P1462 通往奥格瑞玛的道路(最短路+二分)

    P1462 通往奥格瑞玛的道路 题面 题目背景 在艾泽拉斯大陆上有一位名叫歪嘴哦的神奇术士,他是部落的中坚力量 有一天他醒来后发现自己居然到了联盟的主城暴风城 在被众多联盟的士兵攻击后,他决定逃回自己 ...

  9. HDU - 2544最短路 (dijkstra算法)

    HDU - 2544最短路 Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以 ...

随机推荐

  1. java所搜引擎slor学习笔记(一)

    java搜索引擎有很多,比较熟悉的就是slor和lucene. luncene: 概念:全文检索是计算机程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置.当用户查 ...

  2. 一步一步搭建11gR2 rac+dg之安装rac出现问题解决(六)【转】

    一步一步在RHEL6.5+VMware Workstation 10上搭建 oracle 11gR2 rac + dg 之安装rac出现的问题 (六) 本文转自 一步一步搭建11gR2 rac+dg之 ...

  3. mysql insert锁机制【转】

    最近再找一些MySQL锁表原因,整理出来一部分sql语句会锁表的,方便查阅,整理的不是很全,都是工作中碰到的,会持续更新 笔者能力有限,如果有不正确的,或者不到位的地方,还请大家指出来,方便你我,方便 ...

  4. Visual Studio 2017 for Mac

    Visual Studio 2017 for Mac Last Update: 2017/6/16 我们非常荣幸地宣布 Visual Studio 2017 for Mac 现已推出. Visual ...

  5. eclipse各种报错

    1.控制台报这个错是由于tomcat的session缓存的问题; org.apache.catalina.session.StandardManager doLoad 造成原因:上次未正确关闭tomc ...

  6. MFC中CString.Format类详解

    在MFC程序中,使用CString来处理字符串是一个很不错的选择.CString既可以处理Unicode标准的字符串,也可以处理ANSI标准的字符串.CString的Format方法给我们进行字符串的 ...

  7. 学习shell脚本之前的基础知识

    日常的linux系统管理工作中必不可少的就是shell脚本,如果不会写shell脚本,那么你就不算一个合格的管理员.目前很多单位在招聘linux系统管理员时,shell脚本的编写是必考的项目.有的单位 ...

  8. java 闭包与回调

    闭包(closure)是一个可调用的对象,它记录了一些信息,这些信息来自于创建它的作用域. 内部类是面向对象的闭包,因为它不仅包含外围类对象(创建内部类的作用域)的信息,还自动拥有一个指向此外围类对象 ...

  9. Linux学习笔记:nohup & 后台任务

    在linux中,使用nohup xxx.sh &可以将前台任务变成后台任务执行,如果只使用&的话,在突然断网或者关闭启动终端时,内核会向后台任务发送sighup信号,从而导致后台任务停 ...

  10. 安装部署Apache Hadoop (本地模式和伪分布式)

    本节内容: Hadoop版本 安装部署Hadoop 一.Hadoop版本 1. Hadoop版本种类 目前Hadoop发行版非常多,有华为发行版.Intel发行版.Cloudera发行版(CDH)等, ...