【日常训练】Volleyball(CodeForces-96D)
2024-09-09 03:07:57
题意与分析
这题也是傻逼题,可是我当时打比赛的时候板子出问题了- -|||,怎么调也调不过。
不过思路是很清晰的:先做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 ;
}
点我看时雨色图
最新文章
- [已解决]:调用 LoadLibraryEx 失败,在 ISAPI 筛选器 ";c:\Windows\Microsoft.NET\Framework\v4.0.30319\\aspnet_filter.
- 一个java页游服务器框架
- silverlight: http请求的GET及POST示例
- [Java] 使用Comparator排序对象
- XX.frame.origin.x 赋值问题
- javaShop的一些总结
- Hibernate个人总结
- sql union代替or
- [置顶] Cocos2d-x 实例源码分析之二 小实例的主框架
- typeof做类型判断时容易犯下的错
- 裸机(Bare Metal)安装CoreOS
- JavaSE教程-02Java基本语法-思维导图
- 14 ,CSS 文字与文本
- Dynamics CRM项目实例之十:CRM 2015的捆绑销售在订单中的效果
- Python-数据库 基本SQL语句
- JS获取当前日期、比较日期大小
- Flex外包公司——Flex案例展示
- Beautiful Soup库基础用法(爬虫)
- python练习题_01
- Codeforces 594A - Warrior and Archer