UVALive - 4223(hdu 2926)
---恢复内容开始---
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2962
Trucking
Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 11428 Accepted Submission(s): 1104
For the given cargo truck, maximizing the height of the goods transported is equivalent to maximizing the amount of goods transported. For safety reasons, there is a certain height limit for the cargo truck which cannot be exceeded.
1 2 7 5
1 3 4 2
2 4 -1 10
2 5 2 4
3 4 10 1
4 5 8 5
1 5 10
5 6
1 2 7 5
1 3 4 2
2 4 -1 10
2 5 2 4
3 4 10 1
4 5 8 5
1 5 4
3 1
1 2 -1 100
1 3 10
0 0
maximum height = 7
length of shortest route = 20
Case 2:
maximum height = 4
length of shortest route = 8
Case 3:
cannot reach destination
思路:这题既要控制最短路,也要控制height值的最大,总思路就是二分+最短路。
二分控制最大的height,最短路控制最小的路径。 值得一提的是这题格式很严格,写不对就是wa...不会PE, 还有时限卡的很紧,能优化的最好都优化了
具体看代码
#include<iostream>
#include<string.h>
#include<map>
#include<cstdio>
#include<cstring>
#include<stdio.h>
#include<cmath>
#include<ctype.h>
#include<math.h>
#include<algorithm>
#include<set>
#include<queue>
typedef long long ll;
using namespace std;
const ll mod=1e9+;
const int maxn=1e3+;
const int maxk=5e3+;
const int maxx=1e4+;
const ll maxe=+;
#define INF 0x3f3f3f3f3f3f
#define Lson l,mid,rt<<1
#define Rson mid+1,r,rt<<1|1
int d[maxn];//用来存储起点到该点的最短距离,初始化为足够大
int height[maxn][maxn],le[maxn][maxn];//两点间的height,length
int C,R,S,E,limit,max_he,min_le,he;//
bool vis[maxn];//是否访问过,初始化false
void init()
{
//memset(height,-1,sizeof(height));
for(int i=;i<=C;i++)
{
for(int j=;j<=i;j++)
{
le[i][j]=le[j][i]=mod;
height[i][j]=-;
}
}
}
bool solve(int mid)
{
memset(vis,false,sizeof(vis));
for(int i=;i<=C;i++)
{
if(height[S][i]>=mid) d[i]=le[S][i];
else d[i]=mod;
//d[i]=mod;
//vis[i]=false;
}
//d[S]=0;
//he=mod;
while(true)
{
int flag=-;
for(int i=;i<=C;i++)
{
if(!vis[i]&&d[i]!=mod&&(flag==-||d[i]<d[flag]))//没有访问过并且距离不等于mod,因为等于mod代表当前不能走
flag=i;
}
if(flag==-) break;
if(flag==E) return d[flag]!=mod;//这里也是一步优化,只要走到了结束点就行了
vis[flag]=true;
for(int i=;i<=C;i++)
{
//if(le[i][flag]>mid) continue;
if(height[i][flag]<mid) continue;
d[i]=min(d[i],d[flag]+le[flag][i]);
//he=min(he,height[i][flag]);
//d[i]=min(d[i],d[flag]+le[flag][i]);
}
}
return d[E]!=mod;
}
int main()
{
int ca=;
//while(cin>>C>>R)
while(scanf("%d%d",&C,&R)!=EOF)
{ if(C==&&R==) break;
if(ca!=) printf("\n");//这个好像一定要放在break的后面,反正我放在前面wa了
init();
int a,b,c,e;
for(int i=;i<R;i++)
{
scanf("%d%d%d%d",&a,&b,&c,&e);
//cin>>a>>b>>c>>e;
if(c==-) c=mod;//c=-1的话,初始化为无穷大
height[a][b]=c;
height[b][a]=c;
le[a][b]=e;
le[b][a]=e;
}
//cin>>S>>E>>limit;
scanf("%d%d%d",&S,&E,&limit);
int l=,r=limit;
min_le=,max_he=;
while(l<=r)//从0~imit开始二分
{
int mid=(l+r)/;
if(solve(mid))//mid值可以满足,寻求更大的
{
max_he=mid;
min_le=d[E];
l=mid+;
}
else//不能满足,寻求小的
r=mid-;
}
printf("Case %d:\n",ca++);
if(min_le+max_he==) printf("cannot reach destination\n");
else
{
printf("maximum height = %d\n",max_he);
printf("length of shortest route = %d\n",min_le);
} }
return ;
}
UVALive - 4223(hdu 2926)的更多相关文章
- UVALive 4223 / HDU 2962 spfa + 二分
Trucking Problem Description A certain local trucking company would like to transport some goods on ...
- UVALive 4223 Trucking 二分+spfa
Trucking 题目连接: https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8& ...
- UVALive - 4223,hdu2962(简单dijkstra)
Trucking Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- 二分+最短路 UVALive - 4223
题目链接:https://vjudge.net/contest/244167#problem/E 这题做了好久都还是超时,看了博客才发现可以用二分+最短路(dijkstra和spfa都可以),也可以用 ...
- bzoj千题计划210:bzoj2642 | Poj3968 | UVALive 4992| hdu 3761 Jungle Outpost
http://www.lydsy.com/JudgeOnline/problem.php?id=2642 题意: n个瞭望台,形成一个凸n边形.这些瞭望台的保护范围是这个凸包内的任意点. 敌人进攻时, ...
- UVALive 4225 / HDU 2964 Prime Bases 贪心
Prime Bases Problem Description Given any integer base b >= 2, it is well known that every positi ...
- UVALive 4222 /HDU 2961 Dance 大模拟
Dance Problem Description For a dance to be proper in the Altered Culture of Machinema, it must abid ...
- UVALive 4192/HDU 2959 Close Enough Computations 数学
Close Enough Computations Problem Description The nutritional food label has become ubiquitous. A sa ...
- 【ACM】那些年,我们挖(WA)过的最短路
不定时更新博客,该博客仅仅是一篇关于最短路的题集,题目顺序随机. 算法思想什么的,我就随便说(复)说(制)咯: Dijkstra算法:以起始点为中心向外层层扩展,直到扩展到终点为止.有贪心的意思. 大 ...
随机推荐
- BZOJ2212:[POI2011]Tree Rotation
浅谈线段树合并:https://www.cnblogs.com/AKMer/p/10251001.html 题目传送门:https://lydsy.com/JudgeOnline/problem.ph ...
- 【转】 Pro Android学习笔记(四九):ActionBar(2):Action图标区
目录(?)[-] ActionBar的隐藏和现实 ActionBar的action图标区 ActionBar的隐藏和现实 ActionBar bar = getActionBar();bar.hide ...
- 面向对象(Java中普通代码块,构造代码块,静态代码块区别及代码示例)
//执行顺序:(优先级从高到低.)静态代码块>mian方法>构造代码块>构造方法. 其中静态代码块只执行一次.构造代码块在每次创建对象是都会执行. 1 普通代码块 //普通代码块:在 ...
- SharePoint 2013上传AI格式文件,再次下载后变成了PS格式文件
问题: SharePoint 2013上传AI格式文件,再次下载后变成了PS格式文件 需要下载副本才能显示AI格式 解决办法有两个: 第一种,在客户端机器1. Click Start, click R ...
- mac上如何查看gif
今天生成了一个gif,结果用mac自带的图片预览功能打开,图片被切成一张一张的,不是动图效果了.原以为还得下第三方看图软件,后来百度下发现mac本身也可以打开. 方法一: 鼠标右击图片,选择“快速查看 ...
- [MySQL] Data too long for column 'title' at row 1
李刚轻量级JavaEE第六章的坑..艹李刚自己有没试过这些代码的啊,6.4这一份HqlQuery.java里需要的表,根本就跟他提供的sql脚本对不上啊..坑爹啊,而且字符编码集也有问题. 出现这个原 ...
- 阶段2-新手上路\项目-移动物体监控系统\Sprint2-摄像头子系统开发\第2节-V4L2图像编程接口深度学习
参考资料: http://www.cnblogs.com/emouse/archive/2013/03/04/2943243.htmlhttp://blog.csdn.net/eastmoon5021 ...
- win7 系统安装 docker
如果顺利的话,步骤如下: 1.下载DockerToolbox 2.安装DockerToolbox,默认配置,一路下一步即可完成安装 3.安装成功后,桌面会新增三个快捷方式,如下图 4.点击运行Dock ...
- HN669打包工具--游戏对接
一. 将游戏工程拖入到工具的HN669Ploy目录下,如下图: 二. xCode打开游戏工程,将Core目录下的HN669SDKCore工程添加入游戏工程,并引用库,如图: 三.调用API 1.A ...
- jQuery插件AjaxFileUpload可以实现ajax文件上传
http://blog.sina.com.cn/s/blog_55e42da60100ocvh.html