题目描述

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

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

输入输出格式

输入格式:

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

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

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

输出格式:

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

输入输出样例

输入样例#1:

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

210 

说明

【注意】

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

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

#include<cstdio>
#include<cstring>
using namespace std;
const int N=,INF=0x3f3f3f3f; int n,m,cnt,x[N],y[N],z[N],H[N<<],Q[N+];
long long Ans,Dist[N];
bool vis[N];
struct Edge
{
int to,val,nxt;
}e[N<<]; void read(int &now)
{
now=;char c=getchar();
while(c>''||c<'')c=getchar();
while(c>=''&&c<='')now=(now<<)+(now<<)+c-'',c=getchar();
} void AddEdge(int u,int v,int w)
{
e[++cnt].to = v;
e[cnt].val = w;
e[cnt].nxt = H[u];
H[u] = cnt;
} void SPFA(int x)
{
memset(vis,,sizeof vis);
memset(Dist,INF,sizeof Dist);
vis[x]=;
Dist[x]=;
int h=,t=;
Q[h]=;
while(h<t)
{
int cur=Q[h++];
vis[cur]=;
for(int i=H[cur];i;i=e[i].nxt)
{
int to=e[i].to,v=e[i].val;
if(Dist[to]>Dist[cur]+v)
{
Dist[to]=Dist[cur]+v;
if(!vis[to])
Q[t++]=to,vis[to]=;
}
}
}
} int main()
{
read(n);read(m);
for(int i=;i<=m;++i)
read(x[i]),read(y[i]),read(z[i]),AddEdge(x[i],y[i],z[i]);
SPFA();
for(int i=;i<=n;++i)
Ans+=Dist[i];
memset(H,,sizeof H);
cnt=;
for(int i=;i<=m;++i)
AddEdge(y[i],x[i],z[i]);
SPFA();
for(int i=;i<=n;++i)
Ans+=Dist[i];
printf("%lld",Ans);
return ;
}

最新文章

  1. js基本类型和引用类型
  2. C#语言学习记录
  3. 微信蓝牙设备开发教程之获取设备deviceid和二维码(3)
  4. jQuery Moblie 学习之page、button、theme、panel、listview、controlgroup、navbar等(一)
  5. svn服务器端的客户端自动更新
  6. 将ECSHOP会员注册页面的Email修改成非必填项
  7. iOS ASIHTTPRequest 使用指南
  8. poj 2406 Power Strings kmp算法
  9. Oracle 11g R2 for Win7旗舰版(64位)的安装步骤
  10. SpringData JPA详解
  11. npm scripts 助力前端开发,实时刷新浏览器
  12. POJ 3009 深度优先搜索
  13. js 面向对象选项卡
  14. EM算法及其推广的要点
  15. JSP 之国际化
  16. linux下面的智能解压脚本smart解压
  17. JSOUP如何POST只含JSON格式的数据
  18. 建议1---理解Pythonic的概念
  19. YARN 启动后失败退出——没有请求资源——Invalid resource request, no resources request
  20. Summary: difference between public, default, protected, and private key words

热门文章

  1. struts2的动态方法配置
  2. CS193p Lecture 7 - Views, Gestures
  3. ios之coredata(二)
  4. c++ 输入10个数,显示它的平均分
  5. python 发送附件
  6. (28)zabbix用户宏变量详解macro
  7. python安装mysql-connector出错
  8. 使用selenium和phantomJS浏览器获取网页内容的小演示
  9. django(django项目创建,数据库迁移)
  10. MySQL常用命令(三)---最值的搜索