题意:一个无向图,有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. 谁占用了我的Buffer Pool

    原文:谁占用了我的Buffer Pool 转自:http://blogs.msdn.com/b/apgcdsd/archive/2011/01/11/buffer-pool.aspx 我在做SQL S ...

  2. Linux内核分析(六)----字符设备控制方法实现|揭秘系统调用本质

    原文:Linux内核分析(六)----字符设备控制方法实现|揭秘系统调用本质 Linux内核分析(六) 昨天我们对字符设备进行了初步的了解,并且实现了简单的字符设备驱动,今天我们继续对字符设备的某些方 ...

  3. [.Net Tools] 超強大的封裝工具 Advanced Installer

    原文:[.Net Tools] 超强大的封装工具Advanced Installer 日前在网路上晃到这家公司的产品http://www.advancedinstaller.com/,就直接下载并且安 ...

  4. java通用抹去魔,在边界行动,擦除补偿

    java通用抹去魔 package org.rui.generics.erasure; public class HasF { public void f(){ System.out.println( ...

  5. 开源 自由 java CMS - FreeCMS2.0 签字

    项目地址:http://www.freeteam.cn/ 会员注冊 打开浏览器,输入http://localhost:8080/register.jsp. 输入注冊信息后点击"注冊" ...

  6. char与byte差异

    很多人刚开始学习(包含I,我已经学会了一年多java该)肯会char和byte怀疑这两个数据类型,相互混淆.今天,大量的信息专门搜索,至byte和char两个数据类型进行了总结和比较.第一批成果与大家 ...

  7. JMeter 怎么保存登录状态

    在Recording Controller中添加一个HTTP Cookie Manager Recording Controller右键-->add-->config element--& ...

  8. 允许Android随着屏幕转动的控制自由转移到任何地方(附demo)

    在本文中,Android ViewGroup/View流程,及经常使用的自己定义ViewGroup的方法.在此基础上介绍动态控制View的位置的三种方法,并给出最佳的一种方法. 一.ViewGroup ...

  9. JS日期时间选择器

    本文介绍一种日期和时间选择器的使用方法.此选择器由jqueryUI实现,支持精确到毫秒的时间选择. 此选择器项目地址为http://trentrichardson.com/examples/timep ...

  10. CII-2.4指针常量和常量指针

    #define T Stack_T typedef struct T *T; struct T { int count; struct elem { void *x; struct elem *lin ...