USACO 2007 Feb. Silver

N(1≤N≤1000) 头牛要去参加一场在编号为 x(1≤x≤N) 的牛的农场举行的派对。有 M(1≤M≤100000) 条有向道路,每条路长Ti​(1≤Ti​≤100);每头牛都必须参加完派对后回到家,每头牛都会选择最短路径。求这 N 头牛的最短路径(一个来回)中最长的一条的长度。 特别提醒:可能有权值不同的重边。

输入格式
第 1 行:3 个空格分开的整数 N,M,X;

第 2…M+1 行:3 个空格分开的整数 Ai​,Bi​,Ti​,表示有一条从Ai​ 到 Bi​ 的路,长度为 Ti​。

输出格式
一行一个数,表示最长最短路的长度。

样例
样例输入
4 8 2
1 2 4
1 3 2
1 4 7
2 1 1
2 3 5
3 1 2
3 4 4
4 2 3
样例输出
10

_______________________________________________________________________________

两次dij,求得起始点到其他点的最短距离。

记得翻边。

_______________________________________________________________________________

 1 #include<bits/stdc++.h>
2 using namespace std;
3 const int maxn=1010;
4 const int maxm=1e5+10;
5 int n,m,k;
6 struct edge
7 {
8 int u,v,w,nxt;
9 }e[maxm],ee[maxm];
10 int js,jss,head[maxn],headd[maxn];
11 void addage(int u,int v,int w)
12 {
13 e[++js].u=u;e[js].v=v;e[js].w=w;
14 e[js].nxt=head[u];head[u]=js;
15 }
16 void addagee(int u,int v,int w)
17 {
18 ee[++jss].u=u;ee[jss].v=v;ee[jss].w=w;
19 ee[jss].nxt=headd[u];headd[u]=jss;
20 }
21 int diss[maxn],dis[maxn];
22 bool vis[maxn],viss[maxn];
23 struct node
24 {
25 int dis,p;
26 bool operator < (node b)const
27 {
28 return dis>b.dis;
29 }
30 };
31 void dij(int x)
32 {
33 memset(dis,0x3f,sizeof dis);
34 dis[x]=0;
35 priority_queue< node >q;
36 q.push((node){0,x});
37 while(!q.empty())
38 {
39 node t=q.top();
40 q.pop();
41 int d=t.dis,u=t.p;
42 if(vis[u])continue;
43 vis[u]=1;
44 for(int i=head[u];i;i=e[i].nxt)
45 {
46 int v=e[i].v;
47 if(dis[v]>dis[u]+e[i].w)
48 {
49 dis[v]=dis[u]+e[i].w;
50 q.push((node){dis[v],v});
51 }
52 }
53 }
54 }
55 void dijs(int x)
56 {
57 memset(diss,0x3f,sizeof diss);
58 diss[x]=0;
59 priority_queue<node>q;
60 q.push((node){0,x});
61 while(!q.empty())
62 {
63 node t=q.top();
64 q.pop();
65 int d=t.dis,u=t.p;
66 if(viss[u])continue;
67 viss[u]=1;
68 for(int i=headd[u];i;i=ee[i].nxt)
69 {
70 int v=ee[i].v;
71 if(diss[v]>diss[u]+ee[i].w)
72 {
73 diss[v]=diss[u]+ee[i].w;
74 q.push((node){diss[v],v});
75 }
76 }
77 }
78 }
79 int main()
80 {
81 scanf("%d%d%d",&n,&m,&k);
82 for(int u,v,w,i=0;i<m;++i)
83 {
84 scanf("%d%d%d",&u,&v,&w);
85 addage(u,v,w);
86 addagee(v,u,w);
87 }
88 dij(k);
89 dijs(k);
90 int ans=0;
91 for(int i=1;i<=n;++i)ans=max(ans,dis[i]+diss[i]);
92 cout<<ans;
93 return 0;
94 }

LOJ10075 农场派对的更多相关文章

  1. poj3268 Silver Cow Party(农场派对)

    题目描述 原题来自:USACO 2007 Feb. Silver N(1≤N≤1000)N (1 \le N \le 1000)N(1≤N≤1000) 头牛要去参加一场在编号为 x(1≤x≤N)x(1 ...

  2. 农场派对(party)(信息学奥赛一本通 1497)

    [题目描述] N(1≤N≤1000)头牛要去参加一场在编号为 x(1≤x≤N) 的牛的农场举行的派对.有 M(1≤M≤100000) 条有向道路,每条路长 Ti(1≤Ti≤100):每头牛都必须参加完 ...

  3. loj题目总览

    --DavidJing提供技术支持 现将今年7月份之前必须刷完的题目列举 完成度[23/34] [178/250] 第 1 章 贪心算法 √ [11/11] #10000 「一本通 1.1 例 1」活 ...

  4. CSU训练分类

    √√第一部分 基础算法(#10023 除外) 第 1 章 贪心算法 √√#10000 「一本通 1.1 例 1」活动安排 √√#10001 「一本通 1.1 例 2」种树 √√#10002 「一本通 ...

  5. LOJ 一本通一句话题解系列:

    第一部分 基础算法 第 1 章 贪心算法 1):「一本通 1.1 例 1」活动安排:按照结束时间排序,然后扫一遍就可以了. 2):「一本通 1.1 例 2」种树:首先要尽量的往区间重叠的部分种树,先按 ...

  6. Noip2019暑期训练2

      题目名称 骑士遍历 和谐俱乐部 农场派对 对称二叉树 存盘文件名 knight Beautiful party tree 输入文件名 knight.in Beautiful.in party.in ...

  7. 洛谷银牛派对SPFA

    题目描述 One cow from each of N farms (1 ≤ N ≤ 1000) conveniently numbered 1..N is going to attend the b ...

  8. P1821 [USACO07FEB]银牛派对Silver Cow Party

    题目描述 One cow from each of N farms (1 ≤ N ≤ 1000) conveniently numbered 1..N is going to attend the b ...

  9. 洛谷P1821 [USACO07FEB]银牛派对Silver Cow Party

    题目描述 One cow from each of N farms (1 ≤ N ≤ 1000) conveniently numbered 1..N is going to attend the b ...

随机推荐

  1. spring的ioc容器生成的对象也是代理对象对吗

    一直以为spring的ioc容器生成的对象都是代理对象,其实这个是错误的.spring ioc默认的都是原生对象  只有通过aop增强的对象才是代理对象 有@Transactional  注解或者配置 ...

  2. JDBC删除

    1 if(conn != null){ 2 String temps="3"; 3 conn.setAutoCommit(false); 4 PreparedStatement p ...

  3. node-sass 安装失败报错的原因及解决办法(整理)

    npm install 时偶尔遇到报错:没有安装python或node-sass 安装失败的问题,百度之后发现是被墙了,但根据百度的方法换了淘宝镜像和用了vpn都安装失败,最后发现原来是因为没有卸载之 ...

  4. JavaScript--总结三(数组和函数)

    数组 数组的概念: 将多个元素(通常是同一类型)按照一定顺序排列放到一个集合中,这个集合称之为数组---简(一组有序的数据) 数组的作用:可以一次性存储多个数据 数组的定义: 1.通过构造函数创建数组 ...

  5. WEBSERVICE之CXF框架开发webservice

    之前学习了使用jdk开发webservice服务,现在开始学习使用框架(cxf)开发webservice. 1.准备工作 A.使用cxf开发webservice服务,需要用到apache-cxf-3. ...

  6. C++编译过程概述

    一 ---导读 想象成工厂要产出一个产品的过程,经过流水线上一步一步,不同的人的操作,然后经过整合,就得到了一个完整可用的产品. 二---编译过程图解 三---在linux中编程详解编译过程 当我们在 ...

  7. Hbase-cdh5.14.2与kylin集成异常

    1.原先使用版本:apache-kylin-2.5.1-bin-hbase1x 原生版本 启动报错出现异常: Failed to find metadata store by url: kylin_m ...

  8. CentOS-8.3.2011-x86_64 配置网络环境的几个方案以及问题处理方法

    1. 在安装前的环境配置中配置网络 可以通过 NETWORK & HOST NAME 进行网络配置, 推介通过这里便捷设置. 如果在安装的 CentOS 之前的配置选项中没有进行用户和网络的配 ...

  9. 项目实战--JSON.toJSONString()

    需求说明:公司使用Swagger(接口文档在线生成工具),为了让前端同事更好的了解传入参数的详细情况,应用项目中接口(eg:分页查询接口)中使用dto对象来接受前端传入的参数,但是后面中心项目中接口是 ...

  10. 初识vue-简单的自定义标签页面

    vue3.0比vue2.0简化了许多. 在这里呢就做了一个简单的标签页面.在这当中难免会有些错误,请勿见怪. 1.vue的页面编写,也就是app.vue这个文件作为主入口文件,当然这个主入口文件也可以 ...