1462原题链接

1951原题链接

显然答案有单调性,所以可以二分答案,用\(SPFA\)或\(dijkstra\)跑最短路来判断是否可行即可。

注意起点也要收费,\(1462\)数据较水,我一开始没判也过了,但重题\(1951\)把我卡掉了。。

#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;
const int N = 1e4 + 10;
const int M = 1e5 + 10;
struct dd {
int x, D;
bool operator < (const dd &b) const { return D > b.D; }
};
int fi[N], di[M], ne[M], da[M], dis[N], MI[N], f[N], l, n, HP, st, ed;
bool v[N];
priority_queue<dd>q;
inline int re()
{
int x = 0;
char c = getchar();
bool p = 0;
for (; c < '0' || c > '9'; c = getchar())
p |= c == '-';
for (; c >= '0' && c <= '9'; c = getchar())
x = x * 10 + c - '0';
return p ? -x : x;
}
inline void add(int x, int y, int z)
{
di[++l] = y;
da[l] = z;
ne[l] = fi[x];
fi[x] = l;
}
inline int maxn(int x, int y){ return x > y ? x : y; }
inline int minn(int x, int y){ return x < y ? x : y; }
bool dij(int V)
{
if (f[st] > V)
return false;
int i, x, y;
memset(dis, 60, sizeof(dis));
memset(v, 0, sizeof(v));
dis[st] = 0;
q.push((dd){st, 0});
while (!q.empty())
{
x = q.top().x;
q.pop();
if (v[x])
continue;
v[x] = 1;
for (i = fi[x]; i; i = ne[i])
if (dis[y = di[i]] > dis[x] + da[i] && f[di[i]] <= V)
q.push((dd){y, dis[y] = dis[x] + da[i]});
}
return dis[ed] < HP;
}
int main()
{
int i, m, x, y, z, l = 1e9, r = 0, mid;
n = re();
m = re();
st = re();
ed = re();
HP = re();
for (i = 1; i <= n; i++)
{
f[i] = re();
l = minn(l, f[i]);
r = maxn(r, f[i]);
}
for (i = 1; i <= m; i++)
{
x = re();
y = re();
z = re();
add(x, y, z);
add(y, x, z);
}
if (!dij(1e9))
{
printf("-1");
return 0;
}
while (l < r)
{
mid = (l + r) >> 1;
dij(mid) ? r = mid : l = mid + 1;
}
printf("%d", r);
return 0;
}

洛谷1462(重题1951) 通往奥格瑞玛的道路(收费站_NOI导刊2009提高(2))的更多相关文章

  1. 洛谷 P1951 收费站_NOI导刊2009提高(2) 最短路+二分

    目录 题面 题目链接 题目描述 输入输出格式 输入格式 输出格式 输入输出样例 输入样例: 输出样例: 说明 思路 AC代码 总结 题面 题目链接 P1951 收费站_NOI导刊2009提高(2) 其 ...

  2. 洛谷P1936 水晶灯火灵 P1775 古代人的难题_NOI导刊2010提高(02)【重题请做P1936】

    首先我要说明,此题(古代人的难题)与水晶灯火灵是一模一样的! 古代人的难题 (File IO): input:puzzle.in output:puzzle.out 时间限制: 1000 ms  空间 ...

  3. 洛谷——P1951 收费站_NOI导刊2009提高(2)

    https://www.luogu.org/problem/show?pid=1951 题目描述 在某个遥远的国家里,有n个城市.编号为1,2,3,…,n. 这个国家的政府修建了m条双向的公路.每条公 ...

  4. [洛谷P1951]收费站_NOI导刊2009提高(2)

    题目大意:有一张$n$个点$m$条边的图,每个点有一个权值$w_i$,有边权,询问从$S$到$T$的路径中,边权和小于$s$,且$\max\limits_{路径经过k}\{w_i\}$最小,输出这个最 ...

  5. 洛谷 P1951 收费站_NOI导刊2009提高(2)

    题目描述 在某个遥远的国家里,有n个城市.编号为1,2,3,…,n. 这个国家的政府修建了m条双向的公路.每条公路连接着两个城市.沿着某条公路,开车从一个城市到另一个城市,需要花费一定的汽油. 开车每 ...

  6. 洛谷 P1950 长方形_NOI导刊2009提高(2)

    传送门 思路 首先定义\(h\)数组,\(h[i][j]\)表示第\(i\)行第\(j\)列最多可以向上延伸多长(直到一个被用过的格子) 然后使用单调栈算出 \(l_i\)和 \(r_i\) ,分别是 ...

  7. 洛谷 P1952 火星上的加法运算_NOI导刊2009提高(3)

    P1952 火星上的加法运算_NOI导刊2009提高(3) 题目描述 最近欢欢看到一本有关火星的书籍,其中她被一个加法运算所困惑,由于她的运算水平有限.她想向你求助,作为一位优秀的程序员,你当然不会拒 ...

  8. 洛谷 P1950 长方形_NOI导刊2009提高(2) 题解

    P1950 长方形_NOI导刊2009提高(2) 题目描述 小明今天突发奇想,想从一张用过的纸中剪出一个长方形. 为了简化问题,小明做出如下规定: (1)这张纸的长宽分别为n,m.小明讲这张纸看成是由 ...

  9. 洛谷P1774 最接近神的人_NOI导刊2010提高(02) [2017年6月计划 线段树03]

    P1774 最接近神的人_NOI导刊2010提高(02) 题目描述 破解了符文之语,小FF开启了通往地下的道路.当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古代人进行某种活动的图案.而石门 ...

随机推荐

  1. nginx 增加 lua模块

    Nginx中的stub_status模块主要用于查看Nginx的一些状态信息. 本模块默认是不会编译进Nginx的,如果你要使用该模块,则要在编译安装Nginx时指定: ./configure –wi ...

  2. iview 表单验证

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  3. tabindex 去掉虚线

    参考 https://bbs.csdn.net/topics/390165247 style="outline: none"

  4. oracle 的查询问题!!!

    问题: declare aaa integer;email varchar2(100) :='1234@aa.com';begin select count(*) into aaa from dual ...

  5. win10 安装php

    缺失:msvcp110.dll https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=30679

  6. as3.0视频的快进有拖动条

    package com{ import flash.display.MovieClip; import flash.events.MouseEvent; import fl.video.FLVPlay ...

  7. Python之逻辑回归模型来预测

    建立一个逻辑回归模型来预测一个学生是否被录取. import numpy as np import pandas as pd import matplotlib.pyplot as plt impor ...

  8. Mobile Game Development with Unity Build Once, Deploy Anywhere

    本书从自上而下的角度介绍了Unity游戏引擎的功能,并提供了具体的.面向项目的指导,说明了如何在真实的游戏场景中使用这些功能,以及如何从头开始构建让玩家爱不释手的2D和3D游戏.主要内容有:探索Uni ...

  9. Unity3d游戏地图生成器MapMagic World Generator v1.9.1

    Unity3d MapMagic World Generator基于节点的程序和无限游戏地图生成器,图形上的每个节点表示地形或对象生成器:噪声,voronoi,混合,曲线,侵蚀,散射,森林等生态系统, ...

  10. CTF题-http://120.24.86.145:8002/flagphp/:Bugku----flag.php

    今天做了一道关于序列化的题目,收益颇多,愉快地开始. 首先,提示了“hint”,所以尝试加入hint参数.这儿没啥好说的,最后hint=1显示了重点内容.如下图所示 没错,是金灿灿的网页代码,开心,仔 ...