Tyvj 1221 微子危机——战略

背景

№.3
Summer联盟战前兵力战略转移。

描述

Summer的兵力分布在各个星球上,现在需要把他们全部转移到某个星球上。
Summer一共拥有N个星球(1~N),你要把这N个星球上的兵力转到第M个星球上。本来每个星球之间都有星际轨道连接,但Guiolk监视了某些轨道,我们一但走上这些轨道,有可能受到他的攻击。为了安全,Summer不会走被监视的轨道。于是,只有L个星际轨道是被批准通过的。Summer的国防部想统计一下所需的最短路程(即每个星球到第M星球的最短路程总和,单位:M  PS:‘M‘不是米)。

输入格式

第一行有三个正整数,N,M,L(分别如题目描述)接下来L行,为被批准通行的轨道。每行有三个整数:a,b,c,表示第a个星球和第b个星球之间的轨道长cM(有重复)。

输出格式

如果所有星球上的兵力能全部集中到第M个星球,则输出: 最短路程和+“ M(s) are needed.”如果某个星球的兵力不能到达第M个星球,则输出“Sth wrong.”。

测试样例1

输入

【样例输入1】 
5 3 6 
1 2 1 
1 3 3 
2 3 1 
4 1 5 
4 5 2 
5 1 2 
【样例输入2】 
5 3 4 
1 2 1 
1 3 3 
2 3 1 
5 1 2

输出

【样例输出1】 
13 M(s) are needed. 
【样例输出2】 
Sth wrong.

备注

对于30%的数据,1≤N≤20   ,   L≤200
对于80%的数据,1≤N≤600   ,   L≤180000
对于100%的数据,1≤N≤1000   ,   1≤M≤N   ,   L≤500000,   1≤a,b≤N   ,   0≤c≤10000。
2010年广州市第二中学初二第二次测试第三题。

思路:

堆优化dij裸求最短路

代码:

#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#include<vector>
#include<queue>
#include<algorithm>
#define mx 1001

using namespace std;
struct orz
{
    int d,p;
    friend bool operator <(orz a,orz b) {return a.d>b.d;}//堆和set里面都只有小于号,所以要用小根堆的话要将<重定向为>
};
struct Edge{
    int to;
    int w;
};
priority_queue < orz > ss;
int flag = 0,v[mx],d[mx],n,m,l;
vector<Edge> edge[mx];
void input(){
    cin>>n>>m>>l;
    int u,v,wei;
    Edge test;
    for(int i = 1;i <= l;i++){
        scanf("%d%d%d",&u,&v,&wei);
        test.to = v;
        test.w = wei;
        edge[u].push_back(test);
        test.to = u;
        edge[v].push_back(test);
    }
    for(int i = 0;i < mx;i++) d[i] = 1000000000;
}
void dij(int s)
{

    d[s]=0;
    orz tmp;
    tmp.d=0,tmp.p=s;
    ss.push(tmp);
    flag++;
    int x,dd;
    Edge j;
    while (!ss.empty())//不能只做n次,要一直做到堆空
    {
        tmp=ss.top();
        ss.pop();
        x=tmp.p,dd=tmp.d;
        if (v[x]==flag) continue;//这里一定要判断!!!
        v[x]=flag;
        for (int i = 0;i < edge[x].size();i++){

            j = edge[x][i];
            if (d[j.to]>dd+j.w)
            {
                d[j.to]=dd+j.w;
                tmp.d=dd+j.w,tmp.p=j.to;
                ss.push(tmp);
            }
        }

    }
}
int main(){
    input();
    dij(m);
    int ans = 0;
    for(int i = 1;i <= n;i++){
        if(i == m) continue;
        if(d[i] >= 1000000000){
            cout<<"Sth wrong."<<endl;
            return 0;
        }
        ans+=d[i];
    }
    cout<<ans<<" M(s) are needed."<<endl;
    return 0;
}
时间: 2024-08-11 09:45:14

Tyvj 1221 微子危机——战略的相关文章

图论——最短路

Tyvj 1221 微子危机——战略 背景 №.3Summer联盟战前兵力战略转移. 描述 Summer的兵力分布在各个星球上,现在需要把他们全部转移到某个星球上.Summer一共拥有N个星球(1-N),你要把这N个星球上的兵力转到第M个星球上.本来每个星球之间都有星际轨道连接,但Guiolk监视了某些轨道,我们一但走上这些轨道,有可能受到他的攻击.为了安全,Summer不会走被监视的轨道.于是,只有L个星际轨道是被批准通过的.Summer的国防部想统计一下所需的最短路程(即每个星球到第M星球的

TYVJ并查集

神奇的并查集 P1017 冗余关系 当年刚刚学会并查集,合并写的是rank(),ce了好多次 #include <cstdio> int father[5001]; int m,n,c,d,a; int find(int a){ return (father[a]==a) ? a : (father[a]=find(father[a])); } int main(){ scanf("%d%d",&n,&m); for (int i=1;i<=m;i++

互联网的2015危机综合症 如何在2016得到治疗?

在国内经济整体处于下行趋势的2015年,互联网行业原本被寄予厚望,希望能够借其高速发展带动经济呈现复苏迹象.然而就是在2015年,互联网风云波动,狼烟四起.从金字塔顶尖的巨头,到默默无闻的底层创业者,都出现不同表现形态的危机. 而这些危机聚集在一起,引发了强烈的负面综合症,让此前高歌猛进的互联网行业在2015年陷入泥淖无法自拔.时间是所有症结的解药,那么互联网的危机综合症能在2016年得到治疗吗? 发展停滞.倒闭潮涌现:互联网陷入寒冬 互联网行业在2015年遇到的最大危机,就是发展集体陷入停滞,

封杀快的背后:微信平台的危机与恐惧

文/王如晨 迟疑几天之后,微信给出了它封杀快的打车的理由:诱导用户点击链接分享.当媒体问及,具有同样行为的滴滴打车为何没有被封杀时,微信没有回应. 显然,这是一次选择性封杀.当人们意识到快的打车背后有阿里投资,而滴滴打车背后站着腾讯后,就明白这种选择性的深味:腾讯怎么会容忍对手公司跑自家院子里来撒红包.大搞推广促销,跟滴滴打车竞争人气呢. 看上去,微信确实有必要对快的打车动刀.过去一年,滴滴与快的几乎在肉搏. 公众对快的和滴滴去年年底的 10 亿反补贴大战记忆犹新,想起来就有点兴奋.事实上,熟悉

网络安全是困扰各个网络公司的最大顽,应上升至战略高度

随着互联网在人们的生活中发挥越来越重要的作用,互联网的安全问题也逐渐被人们所重视.尽管每年有大量的资金被用于确保网络的安全,降低因为网络事故或人为破坏所造成的损失,但网络安全仍然是困扰各个网络公司的一大顽疾. 互联网的先天之殇 互联网的安全问题之所以严重,很大程度上是由互联网自身的结构所决定的.互联网是美苏冷战的产物,20世纪60年代开始,美国国防部就在考虑设计一个分散的指挥系统,以防止军事指挥中心被苏联核武器攻击后处于瘫痪状态所造成的影响.新的系统要求由一个个分散而相连的指挥点组成,当其中部分

互联网+激发连锁酒店竞争意识 OTA遭遇对抗危机

一边是OTA企业营收不断增加,一边是经济型连锁酒店业绩下滑,一增一减的对比正是目前国内OTA与连锁酒店之间的尴尬写照.2014年OTA企业酒店营收普遍高涨,携程营收增长45%:去哪儿营收增79.0%:与之对应的是如家营收增速仅有5.2%,华住营收增速也降至19.1%.此种形势下,连锁酒店与OTA之间的对抗开始愈演愈烈. OTA大战不断 团购致竞争升级 酒店遭罪 利润被吃掉价格受打压 艾瑞数据显示,2013年,在线旅游酒店预订市场交易规模485.4亿元,同比增长22.1%,2014规模达632.5

二战史鉴:列强的国家战略之日本篇(观点新颖,比较深刻)

文:王鼎杰 [ 转自铁血社区 http://bbs.tiexue.net/post_11278577_1.html/ ] (上) 在二战前的 列强俱乐部中,日本是唯一一个非欧美.非白种人国家成员.同时,在二战前的东亚各国中,它又是第一个认清世界大势,并率先完成现代化转型的国家.早在幕府 末期,“黑船开关”之前,日本国内精英就已经开始有人设计新时代的国家扩张战略.明治维新后,日本迅速将上述战略国策化,形成富国强兵.殖产兴业.文明开 化的三大国策,明确了利益线和主权线相辅相成的地缘政策.从甲午战争到

移动平台化进程加速 网秦如何实现战略转型?

在互联网产业,平台化是一个非常重要的话题,因为平台化有助于企业规模的迅速扩大,实现用户体验和用户粘度的提升,因此,实施这种战略的企业一般都能获得比竞争对手更好的发展.从过去的案例来看,依靠平台化战略获胜的企业有很多,BAT就是典型,而在BAT的影响下,未来也必然会有更多的企业推行平台化战略. BAT平台化战略的启示 BAT的平台化战略表现在不同的层面,比如百度的平台化战略主要依靠网络搜索而开展,腾讯的平台化战略主要依靠即时通讯而开展,阿里的平台化战略主要依靠电子商务而开展.虽然业务不同,但基本思

战略梳理方法

战略梳理方法 作者:张国祥 战略永远处于"想"和"说"的阶段,人们不能做战略,只能执行战略.整个企业经营过程就是执行战略的过程.企业战略只有想清楚,才能说清楚.梳理战略的过程就是一次想清楚说明白的过程. 是企业就会有战略,区别在于有无文字表达而已.成熟企业每年都会修订企业战略,梳理战略当然不难.难的是中小企业.中小企业不少人不知道自己企业的战略,并非没有战略.说企业没战略的老板是不清晰自己的战略,是不知道怎样明晰战略,不懂怎样订战略. 中小企业可以这样订战略: 企业