题意与分析

这题也是傻逼题,可是我当时打比赛的时候板子出问题了- -|||,怎么调也调不过。

不过思路是很清晰的:先做n次dijkstra然后重新建图,建完了以后根据新的单向图再跑一次dijkstra。

代码

 #include <bits/stdc++.h>

 #define ZERO(x) memset(x, 0, sizeof(x))
using namespace std;
using ll=long long; struct Edge { int v, nxt; ll c; };
Edge w[];
vector<int> que;
ll dist[], a[], b[];
int e[][], ww[];
bool vis[];
int N, M, x, y, W = ; void ShortestPath(int s)
{
memset(dist, , sizeof(dist)); dist[s] = ;
ZERO(vis); vis[s]=true;
que.clear();
que.push_back(s);
for (int fi = ; fi < que.size(); ++ fi)
{
int u = que[fi];
for (int i = ww[u]; i; i = w[i].nxt)
{
int v = w[i].v;
if (dist[v] <= dist[u] + w[i].c) continue;
dist[v] = dist[u] + w[i].c;
if (vis[v]) continue;
vis[v] = true;
que.push_back(v);
}
vis[u] = false;
} e[s][] = ;
for (int i = ; i <= N; ++ i)
if (i != s && dist[i] <= a[s]) e[s][++ e[s][]] = i;
} int main()
{
cin >> N >> M;
cin >> x >> y;
for (int i = , u, v; i <= M; ++ i)
{
ll c;
cin >> u >> v >> c;
w[++ W].v = v; w[W].c = c; w[W].nxt = ww[u]; ww[u] = W;
w[++ W].v = u; w[W].c = c; w[W].nxt = ww[v]; ww[v] = W;
}
for (int i = ; i <= N; ++ i) cin >> a[i] >> b[i];
for (int i = ; i <= N; ++ i) ShortestPath(i); memset(dist, , sizeof(dist)); dist[x] = ;
ZERO(vis); vis[x]=true;
que.clear();
que.push_back(x);
for (int fi = ; fi < que.size(); ++ fi)
{
int u = que[fi];
for (int i = ; i <= e[u][]; ++ i)
{
int v = e[u][i];
if (dist[v] <= dist[u] + b[u]) continue;
dist[v] = dist[u] + b[u];
if (vis[v]) continue;
vis[v] = ;
que.push_back(v);
}
vis[u] = ;
} if (dist[y] > (1ll << )) dist[y] = -;
cout << dist[y] << endl; return ;
}

点我看时雨色图

最新文章

  1. [已解决]:调用 LoadLibraryEx 失败,在 ISAPI 筛选器 &quot;c:\Windows\Microsoft.NET\Framework\v4.0.30319\\aspnet_filter.
  2. 一个java页游服务器框架
  3. silverlight: http请求的GET及POST示例
  4. [Java] 使用Comparator排序对象
  5. XX.frame.origin.x 赋值问题
  6. javaShop的一些总结
  7. Hibernate个人总结
  8. sql union代替or
  9. [置顶] Cocos2d-x 实例源码分析之二 小实例的主框架
  10. typeof做类型判断时容易犯下的错
  11. 裸机(Bare Metal)安装CoreOS
  12. JavaSE教程-02Java基本语法-思维导图
  13. 14 ,CSS 文字与文本
  14. Dynamics CRM项目实例之十:CRM 2015的捆绑销售在订单中的效果
  15. Python-数据库 基本SQL语句
  16. JS获取当前日期、比较日期大小
  17. Flex外包公司——Flex案例展示
  18. Beautiful Soup库基础用法(爬虫)
  19. python练习题_01
  20. Codeforces 594A - Warrior and Archer

热门文章

  1. Springboot 报application.properites文件找不到的解决方法
  2. Hadoop HA on Yarn——集群启动
  3. nodejs11安装教程(升级最新版本)
  4. Nginx变量.md
  5. java学习笔记-JavaWeb篇二
  6. C. String Transformation
  7. 【VSC】我安装了哪些扩展插件
  8. css笔记--用户界面样式
  9. rdlc报表随笔心得 ,基本结构和一些表达式。
  10. fastRPC服务使用