acdream1198 求很多人从某点出发,汇聚于某点,至少遍历所有点一次的最短时间

题目描述如题。

思路:从某点可以无限次出发,很像流的问题,开始时候用流,不行。

如此抽象出来问题(问题抽象出来就简单了,关键是如何转化和抽象):这个最短时间,其实是所有点从起点出发,经过一条路径(至少吧),去汇集点的过程,那么最短的时间必然是最长的那条路径(时间最长),若无需攻占所有点,那么直接是最短里,所以要攻占所有点,必然是max(起点到i,i到终点)(遍历i)。

#include<iostream>
#include<cstring>
#include<cstdio>
#include<queue>
using namespace std;
const int inf=0x3f3f3f3f;
const int maxn=1001, maxe=200010;
int head[maxn]; int nume=0;int e[maxe][3];
void inline adde(int i,int j,int w)
{
    e[nume][0]=j;e[nume][1]=head[i];head[i]=nume;
    e[nume++][2]=w;
    e[nume][0]=i;e[nume][1]=head[j];head[j]=nume;
    e[nume++][2]=w;
}
int ds[maxn];int dt[maxn]; int n,m;
void spfa(int s,int d[])
{
    int inq[maxn];
    memset(inq,0,sizeof(inq));
    d[s]=0;
    queue<int>q;
    q.push(s);
    while(!q.empty())
    {
        int cur=q.front();
        q.pop();
        inq[cur]=0;
        for(int j=head[cur];j!=-1;j=e[j][1])
        {
            int v=e[j][0];
            if(d[v]>d[cur]+e[j][2])
            {
                d[v]=d[cur]+e[j][2];
                if(!inq[v])
                {
                    inq[v]=1;
                    q.push(v);
                }
            }
        }
    }
}
int solve()
{
    int minmax=0;
    for(int i=0;i<n;i++)
    {
        if(ds[i]+dt[i]>minmax)
           minmax=ds[i]+dt[i];
    }
    return minmax;
}

void init()
{
    nume=0;
    for(int i=0;i<n;i++)
      {
          head[i]=-1;
          ds[i]=inf;
          dt[i]=inf;
      }
}
int main()
{
  int T;
  scanf("%d",&T);int ct=1;
  while(T--)
  {
      scanf("%d%d",&n,&m);
      init();
      int aa,bb,cc;
      for(int i=0;i<m;i++)
      {
          scanf("%d%d%d",&aa,&bb,&cc);
          adde(aa,bb,cc);
      }
      int s,t;
      scanf("%d%d",&s,&t);
      spfa(s,ds);
      spfa(t,dt);
      int ans=solve();
      printf("Case #%d: %d\n",ct++,ans);
  }
 return 0;
}
时间: 2024-10-10 13:11:41

acdream1198 求很多人从某点出发,汇聚于某点,至少遍历所有点一次的最短时间的相关文章

从前有棵树,叫高数,树上挂了很多人……

从前有棵树,叫高数,树上挂了很多人 很久很久以前,在拉格朗日照耀下,有几座城:分别是常微分方城和偏微分方城这两座兄弟城,还有数理方程.随机过城.从这几座城里流出了几条溪,比较著名的有:柯溪.数学分溪.泛函分溪.回归分溪.时间序列分溪等.其中某几条溪和支流汇聚在一起,形成了解析几河.微分几河.黎曼几河三条大河. 河边有座古老的海森堡,里面生活着亥霍母子,穿着德布罗衣.卢瑟服.门捷列服,这样就不会被开尔蚊骚扰,被河里的薛定鳄咬伤.城堡门口两边摆放着牛墩和道尔墩,出去便是鲍林.鲍林里面的树非常多:有高

递归函数的深入理解,很多人的理解误区

很久没时间发笔记了,这次抽空 sky(我的昵称) 再为大家讲解一个东东,讲的不好之处大神勿喷哈 #include<iostream>using namespace std;void bin(const unsigned int &i){        if (i/2)        bin(i/2);    cout << i%2;} int main(){    int a;    cin >> a;    bin(a);    cout << e

如何选择编程入门语言?一个让很多人纠结的问题

用心分享,共同成长 没有什么比你每天进步一点点更实在了 本文已经收录至我的github,欢迎大家踊跃star 和 issues. https://github.com/midou-tech/articles 点关注,不迷路!!! 为什么会出这样一篇文章? ?本来想写点最近学习的东西,但是最近好多粉丝再问我一个问题. image-20200105164345384 于是我决定把我这个过来人的一些建议给到你们,希望大家少一些不必要的迷茫,多花点时间去学习该学习的东西,去做一些重要的事情. 刚开始学习

上传伪技术~很多人都以为判断了后缀,判断了ContentType,判断了头文件就真的安全了。是吗?

今天群里有人聊图片上传,简单说下自己的经验 0.如果你的方法里面是有指定路径的,记得一定要过滤../,比如你把 aa文件夹设置了权限,一些类似于exe,asp,php之类的文件不能执行,那么如果我在传路径的时候,前面加了一个../呢,这样这种服务器端的限制就跳过了.(DJ音乐站基本上都有这个问题,以及用某编辑器的同志) 1.常用方法:这种就是根据后缀判断是否是图片文件,需要注意的是这种格式:文件:1.asp;.jpg  1.asp%01.jpg  目录: 1.jpg/1.asp 1.jpg/1.

51cto 真好!我又回到了这里!! 看到很多人还在!小废物、小松等等小伙伴还在吗?

呵呵,好几年过去了,发生了好多故事!  现在大家都有很多的改变吧? 作为同龄人的小废物等人现在过得怎么样了? 大家都还好吗?? 51cto 真好!我又回到了这里!! 看到很多人还在!小废物.小松等等小伙伴还在吗?,布布扣,bubuko.com

为什么知乎上很多人都反对创业?(上战场的士兵如果先拿枪打打靶练练枪法,研究研究战术之后,战损比肯定要更好看一点)

为什么知乎上很多人都反对创业? 经常看到一些排名靠前的答案,内容无非规劝他人不要创业,要脚踏实地,认为党和国家大众创业万众创新的政策方针都是胡扯?难道知乎上的知识分子们竟比国家的智囊更有远见?还是他们的认识层次达不到? 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.作者:唐缺链接:https://www.zhihu.com/question/37559307/answer/72755062来源:知乎 -------------------------------------

很多人都在埋怨没有遇到好的团队,但好的团队不可能凭空出现,一流的团队不能仅靠团队成员努力,作为Leader,要有可行的规划,并坚定地执行、时势地调整(转)

<西游记>中的唐僧团队历经千难万险,终于求得真经,目标明确.分工合理为这支队伍最终走向成功奠定了基础.唐僧从一开始,就为这个团队设定了西天取经的目标,虽然经历各种挫折与磨难,但目标从未动摇.悟空探路.八戒牵马.沙僧挑担,几位徒弟一起肩负着保护唐僧的任务.虽然性格迥异.各有缺点,但目标分解合理及成员分工合作,最终风雨同舟,取得真经. <西游记>的故事引申到实际团队技术管理中,也一样有借鉴意义,本文作者为CTO俱乐部会员.湖北同城一家网络科技有限公司开发总监杨斌,他结合自己多年经历谈谈

很多人都说给孩子吃零食不好,这点我也非常肯定

很多人都说给孩子吃零食不好,这点我也非常肯定,但是任何事物也都不是绝对.零食虽然通常都会含有大量的糖分.添加剂或者是油脂等等,对儿童的身体发育相当不利http://www.ximalaya.com/zhubo/27345094/ http://www.ximalaya.com/zhubo/27345095/ http://www.ximalaya.com/zhubo/27345096/ http://www.ximalaya.com/zhubo/27345098/ http://www.xima

很多人,被这句话害了一辈子

点击上方蓝字关注我们,夜读与你一起砥砺前行! 21君:小时候,你可听过“这孩子特聪明,就是学习不用心,他要是认真起来,学习成绩肯定好.”这句话么?是对你说的,还是对你身边的人说的?很多人都觉得这是一个夸奖,但其实给孩子这样的一个想法,其实是害了孩子.自作聪明的人,往往还没有学会正视自己与他人的努力和付出,就已经喜欢了那种轻盈获胜的姿态.为了姿态好看,他们宁可输,也不想通过努力制胜.来源:衷曲无闻(zhongquwuwen) 8:48 很多人,被这句话害了一辈子 来自21世纪经济报道   特别鸣谢