题目大意:邀请卡
在电视的时代,没有多少人会去剧院观看演出。古老的喜剧演员

Malidinesia知道这个事实。他们想传播戏剧尤其是古老的戏剧,他们在邀请卡上打印必要的信息和一些节目,一些学生被雇佣过来发传单,每个学生志愿者都被分配一个公共汽车站来发传单,一个特殊的课程教会了学生们如何影响别人。

这个运输系统(公路)非常的特别:所有的线路都是单向的,并且恰好都有两个站点相连(就是说没有交叉的路,因为交叉的地方都变成了站点),汽车从起点载着旅客出发然后到达目的地后空车返回用半个小时??(是到达用半个小时还是来回....),然后他们在那里等待下一个完整的半小时,两站之间现场付款,,,,(废话太多了,不翻译了,直接看数据)。
就是说这帮人现在一个叫做ccs(默认1号站)的地方集合然后乘坐公交车到达每一个车站,然后晚上从车站回来,求最少的总花费......跟那个D一模一样,题目一大堆废话。。。。。。。。。。。。。。
不过pq的范围很恐怖。。1百万,,什么城市有这么多车站。。。。我去
/////////////////////////////////////////////////////////////////////////
我小瞧了这道题,卡时间卡的特别厉害,而且还需要用long long,vector效率是非常低的,决定放弃vector,使用数组模拟链表
#include<algorithm>
#include<stack>
#include<stdio.h>
#include<string.h>
#include<vector>
#include<string>
#include<map>
#include<iostream>
using namespace std; const int maxn = ;
const int oo = 0x3fffffff; struct BusStation
{
    int u, v, nextBus;
    long long pay;
}ege[maxn], data[maxn]; int head[maxn];
long long dis[maxn];
bool use[maxn]; void Add(int u, int v, long long w, int k)
{
    data[k].u = u;
    data[k].v = v;
    data[k].pay = w;
    data[k].nextBus = head[u];
    head[u] = k;
} long long spfa(int N)
{
    stack<int> Q;
    Q.push();
    use[] = true;     for(int i=; i<=N; i++)
        dis[i] = oo;
    dis[] = ;     while(Q.size())
    {
        int i = Q.top();Q.pop();
        use[i] = false;         for(int j=head[i]; j != ; j = data[j].nextBus)
        {
            int u = data[j].u, v = data[j].v;
            int pay = data[j].pay;             if(dis[u]+pay < dis[v])
            {
                dis[v] = dis[u] + pay;                 if(use[v] == false)
                {
                    Q.push(v);
                    use[v] = true;
                }
            }
        }
    }     long long sum=;     for(int i=; i<=N; i++)
        sum += dis[i];     return sum;
} int main()
{
    int T;     scanf("%d", &T);     while(T--)
    {
        int i, N, M;         scanf("%d%d", &N, &M);         memset(head, , sizeof(head));
        for(i=; i<=M; i++)
        {
            scanf("%d%d%lld", &ege[i].u, &ege[i].v, &ege[i].pay);
            Add(ege[i].u, ege[i].v, ege[i].pay, i);
        }         long long sumPay;         sumPay =  spfa(N);         memset(head, , sizeof(head));
        for(i=; i<=M; i++)
            Add(ege[i].v, ege[i].u, ege[i].pay, i);         sumPay += spfa(N);         printf("%lld\n", sumPay);
    }     return ;

}

J - Invitation Cards的更多相关文章

  1. J - Invitation Cards 最短路

    In the age of television, not many people attend theater performances. Antique Comedians of Malidine ...

  2. D - Silver Cow Party J - Invitation Cards 最短路

    http://poj.org/problem?id=3268 题目思路: 直接进行暴力,就是先求出举行party的地方到每一个地方的最短路,然后再求以每一个点为源点跑的最短路. 还有一种方法会快很多, ...

  3. POJ 1511 Invitation Cards (spfa的邻接表)

    Invitation Cards Time Limit : 16000/8000ms (Java/Other)   Memory Limit : 524288/262144K (Java/Other) ...

  4. POJ 1511 Invitation Cards (最短路spfa)

    Invitation Cards 题目链接: http://acm.hust.edu.cn/vjudge/contest/122685#problem/J Description In the age ...

  5. HDU1535——Invitation Cards(最短路径:SPAF算法+dijkstra算法)

    Invitation Cards DescriptionIn the age of television, not many people attend theater performances. A ...

  6. [POJ] 1511 Invitation Cards

    Invitation Cards Time Limit: 8000MS   Memory Limit: 262144K Total Submissions: 18198   Accepted: 596 ...

  7. hdu 1535 Invitation Cards(SPFA)

    Invitation Cards Time Limit : 10000/5000ms (Java/Other)   Memory Limit : 65536/65536K (Java/Other) T ...

  8. SPFA算法(2) POJ 1511 Invitation Cards

    原题: Invitation Cards Time Limit: 8000MS   Memory Limit: 262144K Total Submissions: 31230   Accepted: ...

  9. 图论trainning-part-1 E. Invitation Cards

    E. Invitation Cards Time Limit: 8000ms Memory Limit: 262144KB 64-bit integer IO format: %lld      Ja ...

随机推荐

  1. 安装SQL Server2008时 检测时有“重启计算机”失败

    第一种解决方案: 在学校的时候 遇到这种问题的解决办法是: 卸载VS,先安装SQL Server 2008 再安装VS 就行了: 第二种解决方案: 如果已经安装过VS,在安装SQL Server200 ...

  2. webViewDidFinishLoad 执行多次的问题

    在做网页加载进度条的时候,发现UIWebViewDelegate中webViewDidFinishLoad方法会执行多次: - (void)webViewDidStartLoad:(UIWebView ...

  3. Objective-C和C++的区别

    1.都是有C语言延伸而来2.OC是完全动态的,C++是部分动态的3.OC不支持多继承,通过代理 类别 协议优雅的实现了相关的一系列特性4.调用机制不同OC里面叫发送消息  C++叫做调用函数数5.OC ...

  4. java 迭代器iterator

    对于如ArrayList<E>类的数据,常用iterator遍历. ArrayList<String> list = new ArrayList<String>() ...

  5. Js regular exprission

    正则表达式用于字符串处理.表单验证等场合,实用高效.现将一些常用的表达式收集于此,以备不时之需. 匹配中文字符的正则表达式: [\u4e00-\u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表 ...

  6. 基于jQuery查找dom的多种方式性能问题

    这个问题的产生由于我们前端组每个人的编码习惯的差异,最主要的还是因为代码的维护性问题.在此基础上,我对jQuery源码(1.11.3)查找dom节点相关的内容进行了仔细的查阅,虽然并不能理解的很深入 ...

  7. nginx1.8+php5.6.10 服务器编译安装备忘2015-06

    又要重新装一台阿里云服务器.开始想用脚本,但发现脚本的程序版本都比较低  还是手动编译最新版本 开始前 更新服务器到最新版本 #yum makecache #yum update //分区挂数据盘 # ...

  8. [HOWTO] Install Sphinx for A Script Pro

    Hi, Here's a small howto on installing Sphinx Search (http://sphinxsearch.com/) and configuring it t ...

  9. K - 计算球体积

    Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u   Description 根据输入的 ...

  10. Python 日期格式化 及 schwartzian排序

    __author__ = 'root' import datetime import time import copy # 12/Dec/2012:23:59:50 # 12/Sep/2012:23: ...