最短路+二分。

对容量进行二分,因为容量和时间是单调关系的,容量越多,能用的边越少,时间会不变或者增加。

因为直接暴力一个一个容量去算会TLE,所以采用二分。

#include<cstdio>
#include<vector>
#include<cstring>
#include<queue>
#include<map>
#include<algorithm>
using namespace std; const int maxn = ;
const int INF = 0x7FFFFFFF;
struct aaa { int u, v, cc, tt; }node[];
vector<aaa>ljb[maxn];
int c[], dist[maxn], flag[maxn];
int n, m, t; void spfa(int xianzhi)
{
int iii;
queue<int>Q;
memset(flag, , sizeof(flag));
for (iii = ; iii<=n; iii++) dist[iii] = INF;
dist[] = ; Q.push(); flag[] = ;
while (!Q.empty())
{
int h = Q.front(); Q.pop(); flag[h] = ;
for (iii = ; iii<ljb[h].size(); iii++)
{
aaa u = ljb[h][iii];
if (u.cc >= xianzhi)
{
if (u.u == h)
{
if (dist[u.u] + u.tt <= dist[u.v])
{
dist[u.v] = dist[u.u] + u.tt;
if (flag[u.v] == )
{
Q.push(u.v);
flag[u.v] = ;
}
}
}
else if (u.v == h)
{
if (dist[u.v] + u.tt <= dist[u.u])
{
dist[u.u] = dist[u.v] + u.tt;
if (flag[u.u] == )
{
Q.push(u.u);
flag[u.u] = ;
}
}
}
}
}
}
} int main()
{
int X;
scanf("%d", &X);
while (X--)
{
int i, j, u, v, tt;
scanf("%d%d%d", &n, &m, &t);
for (i = ; i <= n; i++) ljb[i].clear();
for (i = ; i <= m; i++) node[i].tt = INF;
for (i = ; i < m; i++)
{
scanf("%d%d%d%d", &u, &v, &c[i], &tt);
node[i].u = u; node[i].v = v;
node[i].cc = c[i]; node[i].tt = tt;
ljb[v].push_back(node[i]); ljb[u].push_back(node[i]);
}
sort(c, c + m);
int anss = -, xx, dd, zz;
xx = ; dd = m - ; zz = (xx + dd) / ;
while ()
{
spfa(c[zz]);
if (dist[n] <= t) { anss = zz; xx = zz + ; zz = (xx + dd) / ; }
else { dd = zz; zz = (xx + dd) / ; }
if (xx >= dd) break;
}
printf("%d\n", c[anss]);
}
return ;
}

hdu 1839 Delay Constrained Maximum Capacity Path的更多相关文章

  1. hdu 1839 Delay Constrained Maximum Capacity Path 二分/最短路

    Delay Constrained Maximum Capacity Path Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu. ...

  2. hdu 1839 Delay Constrained Maximum Capacity Path(spfa+二分)

    Delay Constrained Maximum Capacity Path Time Limit: 10000/10000 MS (Java/Others)    Memory Limit: 65 ...

  3. 【启发式搜索】Codechef March Cook-Off 2018. Maximum Tree Path

    有点像计蒜之道里的 京东的物流路径 题目描述 给定一棵 N 个节点的树,每个节点有一个正整数权值.记节点 i 的权值为 Ai.考虑节点 u 和 v 之间的一条简单路径,记 dist(u, v) 为其长 ...

  4. Codechef March Cook-Off 2018. Maximum Tree Path

    目录 题意 解析 AC_code @(Codechef March Cook-Off 2018. Maximum Tree Path) 题意 给你一颗\(n(1e5)\)个点有边权有点权的树,\(Mi ...

  5. HDU 1839

    http://acm.hdu.edu.cn/showproblem.php?pid=1839 题意:从1到n,要求时间小于等于T到达.每条边有一个容量,问最多能运多少货物. 分析:最多能运的货物取决于 ...

  6. UVA 10816 + HDU 1839 Dijstra + 二分 (待研究)

    UVA 题意:两个绿洲之间是沙漠,沙漠的温度不同,告诉起点,终点,求使得从起点到终点的最高温度最小的路径,如果有多条,输出长度最短的路径: 思路:用最小费用(最短路径)最大流(最小温度)也能搞吧,但因 ...

  7. hdu 4002 Find the maximum

    Find the maximum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65768/65768 K (Java/Others) ...

  8. HDU 4002 Find the maximum(欧拉函数)

    题目链接 猜了一个结论,题面跟欧拉函数有关系. import java.util.*; import java.math.*; import java.text.*; import java.io.* ...

  9. HDU 5052 Yaoge’s maximum profit 光秃秃的树链拆分 2014 ACM/ICPC Asia Regional Shanghai Online

    意甲冠军: 特定n小点的树权. 以下n每一行给出了正确的一点点来表达一个销售点每只鸡价格的格 以下n-1行给出了树的侧 以下Q操作 Q行 u, v, val 从u走v,程中能够买一个鸡腿,然后到后面卖 ...

随机推荐

  1. Node.js学习笔记(二):模块

    模块是 Node.js 应用程序的基本组成部分,文件和模块是一一对应的.一个 Node.js 文件就是一个模块,这个文件可能是 JavaScript 代码.JSON 或者编译过的 C/C++ 扩展. ...

  2. ASP.NET Zero--10.一个例子(3)商品分类管理-新建

    1.打开Index视图 页面中添加一个按钮,代码如下: <div class="row margin-bottom-5"> <div class="co ...

  3. 蓝桥杯 C语言 入门训练 Fibonacci数列

    问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1. 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少. 输入格式 输入包含一个整数n ...

  4. java基础练习 4

    import java.util.Scanner; public class Forth { public static void main(String[] args){ /*请输入星期几的第一个字 ...

  5. 记一次Debian下PHP环境的搭建(nginx+mariadb+PHP)!

    顺序是先安装nginx,然后安装mariadb,最后安装PHP.系统用的是debian7 安装nginx sudo apt-get install nginx 我这里用的是稳定的源,没用测试的源,所以 ...

  6. SUSE Linux 下redis 的坑

    前面redis服务器安装-SuSE Linux Enterprise Server 11 SP3一章中安装好提示开放防火墙后的一些坑 前面漏了说明redis作为一个高速数据库,在互联网上,对应的安全机 ...

  7. XTU 1245 Hamiltonian Path

    $2016$长城信息杯中国大学生程序设计竞赛中南邀请赛$C$题 简单题. 注意题目中给出的数据范围:$1 \le ai < bi \le n$,说明这是一个有向无环图,并且哈密顿路一定是$1 \ ...

  8. CodeForces 710B Optimal Point on a Line

    递推. 先对$a[i]$进行从小到大排序. 然后计算出每个点左边所有点到这个点的距离之和$L[i]$,以及右边每个点到这个点的距离之和$R[i]$. 这两个都可以递推得到. $L\left[ i \r ...

  9. 编译C语言单元测试框架CUnit库的方法

    引用: http://blog.csdn.net/yygydjkthh/article/details/46357421 个人备忘使用 /******************************* ...

  10. 第一百一十九节,JavaScript事件入门

    JavaScript事件入门 学习要点: 1.事件介绍 2.内联模型 3.脚本模型 4.事件处理函数 JavaScript事件是由访问Web页面的用户引起的一系列操作,例如:用户点击.当用户执行某些操 ...