题目描述

在电视时代,没有多少人观看戏剧表演。Malidinesia古董喜剧演员意识到这一事实,他们想宣传剧院,尤其是古色古香的喜剧片。他们已经打印请帖和所有必要的信息和计划。许多学生被雇来分发这些请柬。每个学生志愿者被指定一个确切的公共汽车站,他或她将留在那里一整天,邀请人们参与。

这里的公交系统是非常特殊的:所有的线路都是单向的,连接两个站点。公共汽车离开起始点,到达目的地之后又空车返回起始点。学生每天早上从总部出发,乘公交车到一个预定的站点邀请乘客。每个站点都被安排了一名学生。在一天结束的时候,所有的学生都回到总部。现在需要知道的是,学生所需的公交费用的总和最小是多少。

输入输出格式

输入格式:

第1行有两个整数n、m(1<=n,m<=1000000),n是站点的个数,m是线路的个数。

然后有m行,每行描述一个线路,包括3个整数,起始点,目的地和价格。

总部在第1个站点,价钱都是整数,且小于1000000000。

输出格式:

输出一行,表示最小费用。

输入输出样例

输入样例#1:

  1. 4 6
  2. 1 2 10
  3. 2 1 60
  4. 1 3 20
  5. 3 4 10
  6. 2 4 5
  7. 4 1 50
输出样例#1:

  1. 210

说明

【注意】

此题数据规模较大,需要使用较为高效的算法,此题不设小规模数据分数。

建反向边,两边最短路,最水题,没有之一

  1. #include<cstdio>
  2. #include<cstring>
  3. using namespace std;
  4. const int N=,INF=0x3f3f3f3f;
  5.  
  6. int n,m,cnt,x[N],y[N],z[N],H[N<<],Q[N+];
  7. long long Ans,Dist[N];
  8. bool vis[N];
  9. struct Edge
  10. {
  11. int to,val,nxt;
  12. }e[N<<];
  13.  
  14. void read(int &now)
  15. {
  16. now=;char c=getchar();
  17. while(c>''||c<'')c=getchar();
  18. while(c>=''&&c<='')now=(now<<)+(now<<)+c-'',c=getchar();
  19. }
  20.  
  21. void AddEdge(int u,int v,int w)
  22. {
  23. e[++cnt].to = v;
  24. e[cnt].val = w;
  25. e[cnt].nxt = H[u];
  26. H[u] = cnt;
  27. }
  28.  
  29. void SPFA(int x)
  30. {
  31. memset(vis,,sizeof vis);
  32. memset(Dist,INF,sizeof Dist);
  33. vis[x]=;
  34. Dist[x]=;
  35. int h=,t=;
  36. Q[h]=;
  37. while(h<t)
  38. {
  39. int cur=Q[h++];
  40. vis[cur]=;
  41. for(int i=H[cur];i;i=e[i].nxt)
  42. {
  43. int to=e[i].to,v=e[i].val;
  44. if(Dist[to]>Dist[cur]+v)
  45. {
  46. Dist[to]=Dist[cur]+v;
  47. if(!vis[to])
  48. Q[t++]=to,vis[to]=;
  49. }
  50. }
  51. }
  52. }
  53.  
  54. int main()
  55. {
  56. read(n);read(m);
  57. for(int i=;i<=m;++i)
  58. read(x[i]),read(y[i]),read(z[i]),AddEdge(x[i],y[i],z[i]);
  59. SPFA();
  60. for(int i=;i<=n;++i)
  61. Ans+=Dist[i];
  62. memset(H,,sizeof H);
  63. cnt=;
  64. for(int i=;i<=m;++i)
  65. AddEdge(y[i],x[i],z[i]);
  66. SPFA();
  67. for(int i=;i<=n;++i)
  68. Ans+=Dist[i];
  69. printf("%lld",Ans);
  70. return ;
  71. }

luogu P1342 请柬的更多相关文章

  1. Luogu P1342 请柬 题解

    差不多是Dijkstra的裸题吧... 这道题可以分为来回两个阶段. 去的时候很简单,直接用一次Dijkstra,然后统计答案. 回来的时候就有些巧妙了,虽然表面上是每个点回到起点,但是何尝不可将其看 ...

  2. LUOGU P1342 请柬(最短路)

    传送门 解题思路 又是一道语文题,弄清楚题意之后其实就能想出来了,从1跑一遍最短路,把$dis[n]$加入答案.在建个反图跑一遍最短路,把$dis[n]_$加入最短路就行了.第一遍是去的时候,第二遍是 ...

  3. 洛谷P1342 请柬

    P1342 请柬 题目描述 在电视时代,没有多少人观看戏剧表演.Malidinesia古董喜剧演员意识到这一事实,他们想宣传剧院,尤其是古色古香的喜剧片.他们已经打印请帖和所有必要的信息和计划.许多学 ...

  4. 洛谷——P1342 请柬

    P1342 请柬 题目描述 在电视时代,没有多少人观看戏剧表演.Malidinesia古董喜剧演员意识到这一事实,他们想宣传剧院,尤其是古色古香的喜剧片.他们已经打印请帖和所有必要的信息和计划.许多学 ...

  5. 洛谷 P1342 请柬 最短路+Dijkstra算法

    目录 题面 题目链接 题目描述 输入输出格式 输入格式 输出格式 输入输出样例 输入样例 输出样例 说明 思路 AC代码 总结 题面 题目链接 P1342 请柬 题目描述 在电视时代,没有多少人观看戏 ...

  6. P1342 请柬

    最近一直在做最短路......所以今天就再做一道最短路吧.... 题目描述 在电视时代,没有多少人观看戏剧表演.Malidinesia古董喜剧演员意识到这一事实,他们想宣传剧院,尤其是古色古香的喜剧片 ...

  7. 洛谷—— P1342 请柬

    https://www.luogu.org/problemnew/show/1342 题目描述 在电视时代,没有多少人观看戏剧表演.Malidinesia古董喜剧演员意识到这一事实,他们想宣传剧院,尤 ...

  8. 洛谷P1342 请柬(SPFA)

    To 洛谷.1342 请柬 题目描述 在电视时代,没有多少人观看戏剧表演.Malidinesia古董喜剧演员意识到这一事实,他们想宣传剧院,尤其是古色古香的喜剧片.他们已经打印请帖和所有必要的信息和计 ...

  9. 洛谷 P1342 请柬(SPFA)

    题目描述 在电视时代,没有多少人观看戏剧表演.Malidinesia古董喜剧演员意识到这一事实,他们想宣传剧院,尤其是古色古香的喜剧片.他们已经打印请帖和所有必要的信息和计划.许多学生被雇来分发这些请 ...

随机推荐

  1. EOF与feof

    在C语言中,或更精确地说成C标准函数库中表示文件结束符(end of file).在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件.在文本文件中,数据都是 ...

  2. Bootstrap历练实例:导航内下拉菜单的用法

    <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...

  3. H3C交换机系统时间设置漏洞

    H3C交换机系统时间设置存在漏洞 1. 背景说明 由于在编写<主机房网络延伸实施方案>,调试H3C S5120S-28P-EI交换机时,发现交换机设置成现在的时间后,导致本地用户通过ssh ...

  4. XAMPP虚拟主机配置--20150423

    你需要一些顶级域名访问方式来访问你本地的项目文件而不是目录方式访问,这时候就需要配置虚拟主机,给你的目录绑定一个域名(本地的话可以通过修改 hosts 文件随便绑定什么域名比如 www.a.com 或 ...

  5. java获取时间格式

    文章来源:https://www.cnblogs.com/hello-tl/p/9263602.html package com.util; import java.text.SimpleDateFo ...

  6. 使用selenium和phantomJS浏览器获取网页内容的小演示

    # 使用selenium和phantomJS浏览器获取网页内容的小演示 # 导入包 from selenium import webdriver # 使用selenium库里的webdriver方法调 ...

  7. LeetCode(39) Combination Sum

    题目 Given a set of candidate numbers (C) and a target number (T), find all unique combinations in C w ...

  8. gg mirror

    https://gufen.ga/ (无广告,原guso.ml,ggso.ga,guge.ga) https://a.aiguso.tk (无广告,体验良好) https://a.freedo.gq/ ...

  9. 【PL/SQL编程基础】

    [PL/SQL编程基础]语法: declare 声明部分,例如定义变量.常量.游标 begin 程序编写,SQL语句 exception 处理异常 end: / 正斜杠表示执行程序快范例 -- Cre ...

  10. E. A Magic Lamp

    E. A Magic Lamp Time Limit: 1000ms Case Time Limit: 1000ms Memory Limit: 32768KB   64-bit integer IO ...