题意:一个无向图,有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. Java 新特性(4) - JDK 8 新特性

    http://www.360doc.com/content/14/0620/11/1370831_388286071.shtml

  2. 端口扫描之王——nmap入门精讲(转)

    端口扫描在百度百科上的定义是: 端口扫描是指某些别有用心的人发送一组端口扫描消息,试图以此侵入某台计算机,并了解其提供的计算机网络服务类型(这些网络服务均与端口号相关),但是端口扫描不但可以为黑客所利 ...

  3. hdu 1290 竭诚为杭州电礼物50周年

    专门为杭州电50周年礼事 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Tot ...

  4. ASP.NET MVC(C#)和Quartz.Net组件

    ASP.NET MVC(C#)和Quartz.Net组件 在之前的文章<推荐一个简单.轻量.功能非常强大的C#/ASP.NET定时任务执行管理器组件–FluentScheduler>和&l ...

  5. BI—脚不一样的感觉

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

  6. Linux内核分析(二)----内核模块简介|简单内核模块实现

    原文:Linux内核分析(二)----内核模块简介|简单内核模块实现 Linux内核分析(二) 昨天我们开始了内核的分析,网上有很多人是用用源码直接分析,这样造成的问题是,大家觉得很枯燥很难理解,从某 ...

  7. 使用C++实现功能下载文件

    今天问一个同学C++实现的下载链接下载并保存给定的文件,互联网搜索.看到这样的事情在网上.因此,改变下直接带来,因为他的代码是在VC++,我导入到VS2010中出现点小问题.所以改了下贴了个VS中亲測 ...

  8. Microsoft.AlphaImageLoader过滤评论

    Microsoft.AlphaImageLoader是IE滤镜的一种,其主要作用就是对图片进行透明处理.尽管FireFox和IE7以上的IE浏览器已经支持透明的PNG图片,可是就IE5-IE6而言还是 ...

  9. 探寻宝藏(双向DP)

    题目描述 传说HMH大沙漠中有一个M*N迷宫,里面藏有许多宝物.某天,Dr.Kong找到了迷宫的地图,他发现迷宫内处处有宝物,最珍贵的宝物就藏在右下角,迷宫的进出口在左上角.当然,迷宫中的通路不是平坦 ...

  10. 使用ExpandableListView时间轴效果达到

    不废话,首先在地图上,查看结果 这是用ExpandableListView来实现时间轴效果,原理比較简单,以月份为第一级,以天为第二级来实现的. package com.hj.main; import ...