#include<bits/stdc++.h>
#define LL long long
#define fi first
#define se second
#define mk make_pair
#define PII pair<int, int>
#define y1 skldjfskldjg
#define y2 skldfjsklejg using namespace std; const int N = + ;
const int inf = 0x3f3f3f3f;
const LL INF = 0x3f3f3f3f3f3f3f3f;
const int mod = 1e9 + ; int n, m, s1, t1, s2, t2, tot, head[N], d[N][N], dp[N];
vector<PII> G[N]; struct Edge {
int from, to, w, nx;
} edge[]; void add(int u, int v, int w) {
edge[tot].from = u;
edge[tot].to = v;
edge[tot].w = w;
edge[tot].nx = head[u];
head[u] = tot++;
} void Dij(int S, int *d) {
priority_queue<PII, vector<PII>, greater<PII> > que;
que.push(mk(, S)), d[S] = ;
while(!que.empty()) {
PII now = que.top(); que.pop();
int u = now.se, dis = now.fi;
if(dis > d[u]) continue;
for(int i = head[u]; ~i; i = edge[i].nx) {
int v = edge[i].to, w = edge[i].w;
if(dis + w < d[v]) {
d[v] = dis + w;
que.push(mk(d[v], v));
}
}
}
} int dfs(int u) {
if(~dp[u]) return dp[u];
dp[u] = ;
for(int i = ; i < G[u].size(); i++) {
int v = G[u][i].se, w = G[u][i].fi;
dp[u] = max(dp[u], dfs(v) + w);
}
return dp[u];
} int cal(int s1, int t1, int s2, int t2) {
memset(dp, -, sizeof(dp));
for(int i = ; i <= n; i++) G[i].clear();
for(int i = ; i < tot; i++) {
int u = edge[i].from, v = edge[i].to, w = edge[i].w, f = ;
if(d[s1][u] + d[t1][v] + w == d[s1][t1]) f++;
if(d[s2][u] + d[t2][v] + w == d[s2][t2]) f++;
if(f == ) {
G[u].push_back(mk(w, v));
}
}
int ans = ;
for(int i = ; i <= n; i++)
ans = max(ans, dfs(i));
return ans;
} int main() {
memset(head, -, sizeof(head));
memset(d, inf, sizeof(d));
scanf("%d%d", &n, &m);
scanf("%d%d%d%d", &s1, &t1, &s2, &t2);
for(int i = ; i <= m; i++) {
int u, v, w;
scanf("%d%d%d", &u, &v, &w);
add(u, v, w); add(v, u, w);
} Dij(s1, d[s1]);
Dij(t1, d[t1]);
Dij(s2, d[s2]);
Dij(t2, d[t2]); int ans = ;
ans = max(ans, cal(s1, t1, s2, t2));
ans = max(ans, cal(s1, t1, t2, s2)); printf("%d\n", ans);
return ;
} /*
*/

bzoj 1880 最短路径图的更多相关文章

  1. BZOJ 1023 仙人掌图

    Description 如果某个无向连通图的任意一条边至多只出现在一条简单回路(simple cycle)里,我们就称这张图为仙人图(cactus).所谓简单回路就是指在图上不重复经过任何一个顶点的回 ...

  2. BZOJ 1880: [Sdoi2009]Elaxia的路线( 最短路 + dp )

    找出同时在他们最短路上的边(dijkstra + dfs), 组成新图, 新图DAG的最长路就是答案...因为两人走同一条路但是不同方向也可以, 所以要把一种一个的s,t换一下再更新一次答案 ---- ...

  3. BZOJ 2763 分层图最短路

    突然发现我不会分层图最短路,写一发. 就是同层中用双向边相连,用单向边连下一层 #include <cstdio> #include <algorithm> #include ...

  4. bzoj 1880 [Sdoi2009]Elaxia的路线(最短路+拓扑序)

    Description 最近,Elaxia和w**的关系特别好,他们很想整天在一起,但是大学的学习太紧张了,他们 必须合理地安排两个人在一起的时间.Elaxia和w**每天都要奔波于宿舍和实验室之间, ...

  5. bzoj 1880: [Sdoi2009]Elaxia的路线

    Description 最近,Elaxia和w的关系特别好,他们很想整天在一起,但是大学的学习太紧张了,他们 必须合理地安排两个人在一起的时间.Elaxia和w每天都要奔波于宿舍和实验室之间,他们 希 ...

  6. 【BZOJ 1880】 [Sdoi2009]Elaxia的路线 (最短路树)

    1880: [Sdoi2009]Elaxia的路线 Description 最近,Elaxia和w**的关系特别好,他们很想整天在一起,但是大学的学习太紧张了,他们 必须合理地安排两个人在一起的时间. ...

  7. bzoj 1006 弦图染色

    给定一个弦图,问最少染色数. 对于弦图的一个完美消去序列,从后往前染色,每次染可以染的最小编号的颜色,由完美消去序列的定义,序列任一后缀的点的导出子图中,由该后缀第一个元素及其邻接点导出的子图一定是完 ...

  8. bzoj 1880 最短路

    我们首先知道,答案肯定是最短路图中的某段公共链,那么设(x,y)为x到y的最短路,那么答案为((s1,t1)+(s2,t2)-min((s1,s2)+(t1,t2),(s1,t2),(s2,t1))) ...

  9. bzoj 1242 弦图判定 MCS

    题目大意: 给定一张无向图,判断是不是弦图. 题解: 今天刚学了<弦图与区间图> 本来写了一个60行+的学习笔记 结果因为忘了保存重启电脑后被还原了... 那就算了吧. MCS最大势算法, ...

随机推荐

  1. 管理lnmp常用命令,lnmp重启,start|stop|reload|restart等命令

    LNMP状态管理命令: LNMP状态管理: /root/lnmp {start|stop|reload|restart|kill|status}Nginx状态管理:/etc/init.d/nginx ...

  2. maven创建spring项目之后,启动报错java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener

    出错情景:maven中已经加载了spring的核心包,但是项目启动时,报错: org.apache.catalina.core.StandardContext listenerStart严重: Err ...

  3. 2-sat基础题 BZOJ 1823

    http://www.lydsy.com/JudgeOnline/problem.php?id=1823 1823: [JSOI2010]满汉全席 Time Limit: 10 Sec  Memory ...

  4. 百度搜索URL中的参数都是什么

    最近,点石排名更新了一个新功能——站内搜索.其实理解起来也很简单,就是通过URL限定搜索结果为某个网站,从而参与点击(例如:https://www.baidu.com/s?wd=SEO&si= ...

  5. 重构改善既有代码设计--重构手法02:Inline Method (内联函数)& 03: Inline Temp(内联临时变量)

    Inline Method (内联函数) 一个函数调用的本体与名称同样清楚易懂.在函数调用点插入函数体,然后移除该函数. int GetRating() { return MoreThanfiveLa ...

  6. .net core 中 identity server 4 之术语

    id4的职责: 保护你的资源 通过本地 账户库(Account Store)或者外部身份提供其 认证用户 提供Session管理以及SSO 管理和认证客户端 发行身份及访问Token给客户端 验证To ...

  7. DIV+CSS制作斜线效果记录

    DIV+CSS 斜线效果很简单,只需设置一下CSS Border 的边框就能有斜线效果.代码分享给大家,你可以自己变通. 提示要注意两点:1.DIV宽高的定义.2.DIV在 IE6 中默认是有高度的. ...

  8. 面向对象 ( OO ) 的程序设计——继承

    本文地址:http://www.cnblogs.com/veinyin/p/7608282.html  仅支持实现继承,且主要依靠原型链来实现,不过一般会混合构造函数一起实现继承 1 原型链 继承使用 ...

  9. Oracle笔记之序列(Sequence)

    Oracle中序列是一种数据对象,可以视为一个等差数列,我们自增就是一个遍历这个数列的过程,可以取当前值,也可以将当前值自加n后返回,Sequence与表没有太大的关系,有的时候如果表的主键是数值类型 ...

  10. select count(*) from user注入

    先来看一条sql语句: mysql; +------+----------+----------+------------+ | id | username | password | flag | + ...