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

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. c++primerplus(第六版)编程题——第5章(循环和关系表达式)

    声明:作者为了调试方便,每一章的程序写在一个工程文件中,每一道编程练习题新建一个独立文件,在主函数中调用,我建议同我一样的初学者可以采用这种方式,调试起来会比较方便. (具体方式参见第3章模板) 1. ...

  2. 【POJ2761】【fhq treap】A Simple Problem with Integers

    Description You have N integers, A1, A2, ... , AN. You need to deal with two kinds of operations. On ...

  3. PHP中的&传值引用的问题,在foreach循环的结果能帮解释下输出的结果原理是什么?

    PHP中的&传值引用的问题,在foreach循环的结果能帮解释下输出的结果原理是什么? 代码如下: <?php $arr = array('one','two','three'); fo ...

  4. Extjs4 关于Store的一些操作(转)

    1.关于加载和回调的问题 ExtJs的Store在加载时候一般是延迟加载的,这时候Grid就会先出现一片空白,等加载完成后才出现数据:因此,我们需要给它添加一个提示信息! 但是Store却没有wait ...

  5. 简单工厂模式的C++实现

    用简单工厂模式实现一个计算器类: #include <iostream> #include <string> using namespace std; class Operat ...

  6. ASP.NET MVC轻教程 Step By Step 2 ——View初探

    在上一节我们完成了一个最简化的MVC程序,最重要的是下面这段代码. public class HomeController : Controller { public string Index() { ...

  7. spring mvc ModelAndView 404的原因

    在使用ModelAndView时不要导入 import org.springframework.web.portlet.ModelAndView; 而要导入以下这个包 import org.sprin ...

  8. bzoj1038: [ZJOI2008]瞭望塔

    Description 致力于建设全国示范和谐小村庄的H村村长dadzhi,决定在村中建立一个瞭望塔,以此加强村中的治安.我们将H村抽象为一维的轮廓.如下图所示 我们可以用一条山的上方轮廓折线(x1, ...

  9. NSDictionary 使用总结

    NSDictionary使用小结 #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @ ...

  10. 欧拉计划(1~3)ps:以后看题一定要认真

    那天的题挺简单的 下面来看下 No1 If we list all the natural numbers below 10 that are multiples of 3 or 5, we get ...