题意:一个无向图,有n个点,m条边,每条边有距离w,每个点有两个属性(1、从这点出发能到的最远距离,2、从这点出发的费用(不论走多远都一样)),一个人要从点x到点y,问最小费用是多少。

题目链接:http://codeforces.com/problemset/problem/96/D

——>>前n次SPFA用来建图(以费用为权值重新建图),建好图好再一次SPFA求小最小费用。

要小心新图的边数,边数可能会增长得很快,这地方我开得不够大WA数次。。。

#include <cstdio>
#include <queue>
#include <cstring> using namespace std; const int maxn = 10000 + 10;
const int maxm = 1000 * 1000;
const long long INF = 0x3f3f3f3f3f3f3f3f; struct CSPFA{
int head[maxn], nxt[maxm], u[maxm], v[maxm], w[maxm], S, T, e;
long long d[maxn];
bool inq[maxn];
void init(){
memset(head, -1, sizeof(head));
e = 0;
}
void addEdge(int uu, int vv, int ww){
u[e] = uu;
v[e] = vv;
w[e] = ww;
nxt[e] = head[uu];
head[uu] = e;
e++;
}
void spfa(int S){
memset(inq, 0, sizeof(inq));
memset(d, 0x3f, sizeof(d));
d[S] = 0;
queue<int> qu;
qu.push(S);
while(!qu.empty()){
int x = qu.front(); qu.pop();
inq[x] = 0;
for(int e = head[x]; e != -1; e = nxt[e]) if(d[v[e]] > d[x] + w[e]){
d[v[e]] = d[x] + w[e];
if(!inq[v[e]]){
qu.push(v[e]);
inq[v[e]] = 1;
}
}
}
}
}S1, S2; int main()
{
int n, m, x, y, i, j, uu, vv, ww, t, c;
while(scanf("%d%d", &n, &m) == 2){
scanf("%d%d", &x, &y);
S1.init();
for(i = 0; i < m; i++){
scanf("%d%d%d", &uu, &vv, &ww);
S1.addEdge(uu, vv, ww);
S1.addEdge(vv, uu, ww);
}
S2.init();
for(i = 1; i <= n; i++){
scanf("%d%d", &t, &c);
S1.spfa(i);
for(j = 1; j <= n; j++) if(S1.d[j] <= t){
S2.addEdge(i, j, c);
}
}
S2.spfa(x);
long long ret = S2.d[y] == INF ? -1 : S2.d[y];
printf("%I64d\n", ret);
}
return 0;
}

CF - 96D - Volleyball的更多相关文章

  1. Codeforces 96D Volleyball(最短路径)

    Petya loves volleyball very much. One day he was running late for a volleyball match. Petya hasn't b ...

  2. CF 96 D. Volleyball

    D. Volleyball http://codeforces.com/contest/96/problem/D 题意: n个路口,m条双向路,每条长度为w.每个路口有一个出租车司机,最多可以乘坐这辆 ...

  3. ORA-00494: enqueue [CF] held for too long (more than 900 seconds) by 'inst 1, osid 5166'

    凌晨收到同事电话,反馈应用程序访问Oracle数据库时报错,当时现场现象确认: 1. 应用程序访问不了数据库,使用SQL Developer测试发现访问不了数据库.报ORA-12570 TNS:pac ...

  4. cf之路,1,Codeforces Round #345 (Div. 2)

     cf之路,1,Codeforces Round #345 (Div. 2) ps:昨天第一次参加cf比赛,比赛之前为了熟悉下cf比赛题目的难度.所以做了round#345连试试水的深浅.....   ...

  5. cf Round 613

    A.Peter and Snow Blower(计算几何) 给定一个点和一个多边形,求出这个多边形绕这个点旋转一圈后形成的面积.保证这个点不在多边形内. 画个图能明白 这个图形是一个圆环,那么就是这个 ...

  6. ARC下OC对象和CF对象之间的桥接(bridge)

    在开发iOS应用程序时我们有时会用到Core Foundation对象简称CF,例如Core Graphics.Core Text,并且我们可能需要将CF对象和OC对象进行互相转化,我们知道,ARC环 ...

  7. [Recommendation System] 推荐系统之协同过滤(CF)算法详解和实现

    1 集体智慧和协同过滤 1.1 什么是集体智慧(社会计算)? 集体智慧 (Collective Intelligence) 并不是 Web2.0 时代特有的,只是在 Web2.0 时代,大家在 Web ...

  8. CF memsql Start[c]UP 2.0 A

    CF memsql Start[c]UP 2.0 A A. Golden System time limit per test 1 second memory limit per test 256 m ...

  9. CF memsql Start[c]UP 2.0 B

    CF memsql Start[c]UP 2.0 B B. Distributed Join time limit per test 1 second memory limit per test 25 ...

随机推荐

  1. 走向DBA[MSSQL篇] 针对大表 设计高效的存储过程【原理篇】 附最差性能sql语句进化过程客串

    原文:走向DBA[MSSQL篇] 针对大表 设计高效的存储过程[原理篇] 附最差性能sql语句进化过程客串 测试的结果在此处 本篇详解一下原理 设计背景 由于历史原因,线上库环境数据量及其庞大,很多千 ...

  2. POSIX 螺纹具体解释(1-概要)

    线程是有趣的 线程类似于进程.如同进程,线程由内核按时间分片进行管理.在单处理器系统中,内核使用时间分片来模拟线程的并发运行.这样的方式和进程的同样. 而在多处理器系统中,如同多个进程.线程实际上一样 ...

  3. BI—脚不一样的感觉

    在这个网络智能的时代,假设生活和智能挂不上边那就太落后啦!尤其IT行业更是如此,前不久还在用微软的office做报表,这几天就吵吵着换成BI,那么BI是什么?有什么用?怎么用?等等带着这一系列的问题来 ...

  4. SWI-Prolog

    上个月突然看到Prolog这门语言,它特殊的语法吸引了我,但是经过我一段时间的学习,发现它也不像网络上传说的那样神奇,不过我依然对它很感兴趣,有前辈说Prolog本身并不强大,但是用来作为一门辅助语言 ...

  5. UVA1232 - SKYLINE(段树部分的变化)

    UVA1232 - SKYLINE(线段树区间改动) 题目链接 题目大意:依照顺序盖楼.假设这个位置(当前要盖的楼覆盖范围内)要新建的楼的高度>=之前就有的最大高度,那么就+1.最后输出这个+1 ...

  6. hdu 4864 Task---2014 Multi-University Training Contest 1

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4864 Task Time Limit: 4000/2000 MS (Java/Others)    M ...

  7. 面向对象三大特征之多态——Java笔记(七)

    多态:     同一个实体同时具有多种形式     编译时的类型有声明该变量时使用的类型决定,运行时的类型有实际赋值给变量的对象决定     如果编译时类型和运行时类型不同,就出现多态 例: clas ...

  8. 大数据系列修炼-Scala课程05

    Scala多重继承.构造器的执行顺序.AOP实现 多重继承的trait实现:Scala中接口可以继承具体的类,trait接口可以实现多重继承,并且某个类也可以继承特定的类,在继承后面可以混入,接口的实 ...

  9. 【SICP练习】150 练习4.6

    练习4-6 原版的 Exercise 4.6. Let expressions are derived expressions, because (let (( ) - ( )) ) is equiv ...

  10. 各大oj题目分类(转)

    POJ题目分类 | POJ题目分类 | HDU题目分类 | ZOJ题目分类 | SOJ题目分类 | HOJ题目分类 | FOJ题目分类 | 模拟题: POJ1006POJ1008POJ1013POJ1 ...