JZOJ 1267. 路障
1267. 路障(block.pas/c/cpp)
(File IO): input:block.in output:block.out
Description
农村有 R (1 <= R <= 100,000) 条双向的路,每条路连接 N (1 <= N <= 5000) 个结点中的两个。结点的编号是 1..N。Bessie 从结点 1出发,她的朋友(目的地)在结点 N。
次短路径可以使用最短路径上的路,而且允许退回,即到达一个结点超过一次。次短路径是一种长度大于最短路径的路径(如果存在两条或多条最短路径存在,次短路径就是比它们长,且不比其他任何的路径长的路径)。
Input
Lines 2..R+1: 每行包含三个用空格分隔的整数: A, B, 和 D表示有一条路连接结点A和B,长度为D (1 <= D <= 5000)。
Output
Sample Input
4 4
1 2 100
2 4 200
2 3 250
3 4 100
Sample Output
450
#include <cstdio>
#include <cstring>
#include <string>
#include <iostream>
#include <queue>
#include <algorithm>
#include <cstdlib>
#define N 400007
using namespace std;
int n, m, tot, ans;
struct edge
{
int to, next, w;
}e[N];
int ls[N], f[N], list[N];
int times[N];
bool v[N];
struct A_node
{
int g, h, p;
bool operator < (A_node x) const
{
return x.g + x.h < g + h;
}
};
priority_queue<A_node>Q; void add(int x, int y, int z)
{
e[++tot].to = y;
e[tot].next = ls[x];
e[tot].w = z;
ls[x] = tot;
e[++tot].to = x;
e[tot].next = ls[y];
e[tot].w = z;
ls[y] = tot;
} void spfa()
{
for (int i = ; i <= n; i++)
f[i] = ;
f[n] = ;
int h = , t = ;
list[++t] = n;
v[n] = ;
while (h < t)
{
int p = list[++h];
for (int i = ls[p]; i; i = e[i].next)
if (f[p] + e[i].w < f[e[i].to])
{
f[e[i].to] = f[p] + e[i].w;
if (!v[e[i].to])
{
v[e[i].to] = ;
list[++t] = e[i].to;
}
}
v[p] = ;
}
} int A_star()
{
A_node t1, tmp;
t1.p = , t1.g = , t1.h = ;
Q.push(t1);
while (!Q.empty())
{
t1 = Q.top(); Q.pop();
times[t1.p]++;
if (times[t1.p] == && t1.p == n) return t1.h + t1.g;
if (times[t1.p] > ) continue;
for (int i = ls[t1.p]; i; i = e[i].next)
{
tmp.p = e[i].to;
tmp.g = f[e[i].to];
tmp.h = e[i].w + t1.h;
Q.push(tmp);
}
} } int main()
{
freopen("block.in", "r", stdin);
freopen("block.out", "w", stdout);
scanf("%d%d", &n, &m);
int x, y, z;
for (int i = ; i<= m; i++)
{
scanf("%d%d%d", &x, &y, &z);
add(x, y, z);
}
spfa();
ans = A_star();
printf("%d", ans);
}
JZOJ 1267. 路障的更多相关文章
- 彻底解决phpcms v9升级后,文章发布出现: Mysql 1267错误:MySQL Error : Illegal mix of collations 解决办法
彻底解决phpcms v9升级后,文章发布出现: MySQL Query : SELECT * FROM `withli_a`.`v9_keyword` WHERE `keyword` = '吼吼' ...
- 洛谷 P3395 路障
P3395 路障 题目背景 此题约为NOIP提高组Day1T1难度. 题目描述 B君站在一个n*n的棋盘上.最开始,B君站在(1,1)这个点,他要走到(n,n)这个点. B君每秒可以向上下左右的某个方 ...
- (jzoj snow的追寻)线段树维护树的直径
jzoj snow的追寻 DFS序上搞 合并暴力和,记录最长链和当前最远点,距离跑LCA # include <stdio.h> # include <stdlib.h> # ...
- 并发库应用之八 & 循环路障CyclicBarrier应用
JDK包位置:java.util.concurrent.CyclicBarrier 一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point).在涉及 ...
- django插入数据库错误:mysql的1267错误
错误信息: django.db.utils.OperationalError: (1267, "Illegal mix of collations (latin1_swedish_ci,IM ...
- [jzoj]3506.【NOIP2013模拟11.4A组】善良的精灵(fairy)(深度优先生成树)
Link https://jzoj.net/senior/#main/show/3506 Description 从前有一个善良的精灵. 一天,一个年轻人B找到她并请他预言他的未来.这个精灵透过他的水 ...
- [jzoj]3468.【NOIP2013模拟联考7】OSU!(osu)
Link https://jzoj.net/senior/#main/show/3468 Description osu 是一款群众喜闻乐见的休闲软件. 我们可以把osu的规则简化与改编成以下的样子: ...
- [jzoj]5478.【NOIP2017提高组正式赛】列队
Link https://jzoj.net/senior/#main/show/5478 Description Sylvia 是一个热爱学习的女孩子. 前段时间,Sylvia 参加了学校 ...
- [jzoj]1115.【HNOI2008】GT考试
Link https://jzoj.net/senior/#main/show/1115 Description 申准备报名参加GT考试,准考证号为n位数X1X2X3...Xn-1Xn(0<=X ...
随机推荐
- Gym 100971B Derangement
要求改换序列,使得没有位置是a[i] == i成立.输出最小要换的步数 首先把a[i] == i的位置记录起来,然后两两互相换就可以了. 对于是奇数的情况,和它前一个换或者后一个换就可以,(注意前一个 ...
- VMware安装CentOS7的详细过程
原文:https://www.jianshu.com/p/ce08cdbc4ddb?utm_source=tuicool&utm_medium=referral 本篇文章主要介绍了VMware ...
- HBase 相关API操练(三):MapReduce操作HBase
MapReduce 操作 HBase 在 HBase 系统上运行批处理运算,最方便和实用的模型依然是 MapReduce,如下图所示. HBase Table 和 Region 的关系类似 HDFS ...
- asp.net5中程序根目录的获取
最近在写一个asp.net5的应用,其中要实现的一个功能是生成一个文件,并且存储到应用程序根目录(这里指project.json所在的文件夹)下的export文件夹下.生成文件内容什么的都做好了,忽然 ...
- Spring整合Struts2 注解版
1.jar包 <!--spring配置--> <dependency> <groupId>org.springframework</groupId> & ...
- webpack实用小功能介绍
1.overlay overlay属于devServer的属性,配置案例如下: ? 1 2 3 4 5 6 devServer: { overlay: { errors: true, war ...
- Git 常用基本命令汇总
安装git yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel yum install -y gi ...
- visual studio2010中C#生成的,ArcGIS二次开发的basetool的dll,注册为COM组件tlb文件,并在arcmap中加载使用
写了个标题好长啊~~~~ 这两天又认识了一个新玩意,记录一下下,啦啦啦~~~~~ 话说,认识arcgis快十年了,从桌面版到engine的二次开发,其实不过才认识到它的冰山一角, 它总是能带来很多还未 ...
- keil 系列问题
1.为了让keil支持stm32f0系列,安装了keil4更高级的版本,但是发现编译时弹出异常提示框,经过一番折腾后找到解决办法,首先把电脑登陆账户名改为非中文的,然后卸载了keil重装就可以了. ...
- Spring IoC和AOP的介绍
基于Spring Framework 版本:5.0.2.RELEASE IoC 概念:传统Java开发中,程序通过new主动创建对象实例,而Spring有专门的IoC容器来创建对象,具体来说就是在Sp ...