2010 Stanford Local ACM Programming Contest-H解题报告

题意是说,给出一些道路,要修建一条高速公路,高速公路不能分叉,而且是在给出的图中的一些路径组成,求的是不在高速公路上的点离高速公路的最远距离的最小值是多少。首先要找到一条这个图中的关键路径,既最长的路径,如果高速公路不是最长路径,那么没法满足其他的点到高速公路的距离最大值最小,而找最长路径,先从任意点找到离这个点最远的一个点,然后从最远的点找到一条最长的路径既为最长路径了。很有用的结论

View Code
  1 #include<stdio.h>
  2 #include<string.h>
  3 #define N 100005
  4 #define inf 0x7fffffff
  5 int head[N],t;
  6 int used[N];
  7 int d[N];
  8 int par[N];
  9 int f,r;
 10 struct node
 11 {
 12     int l;
 13     int id;
 14 };
 15 node q[N];
 16 struct edge
 17 {
 18     int v,next,l;
 19 };
 20 edge e[2*N];
 21 void add(int u,int v,int l)
 22 {
 23     e[t].v=v;
 24     e[t].l=l;
 25     e[t].next=head[u];
 26     head[u]=t++;
 27 }
 28 void bfs()
 29 {
 30     int i,j;
 31     node tmp;
 32     while(f<r)
 33     {
 34         tmp=q[f];
 35         f++;
 36         for(i=head[tmp.id];i>=0;i=e[i].next)
 37         {
 38             if(!used[e[i].v])
 39             {
 40                 used[e[i].v]=true;
 41                 par[e[i].v]=tmp.id;
 42                 d[e[i].v]=tmp.l+e[i].l;
 43                 q[r].id=e[i].v;
 44                 q[r++].l=d[e[i].v];
 45             }
 46         }
 47     }
 48 }
 49 int main()
 50 {
 51     int n,i,j,k;
 52     int u,v,l;
 53     node tmp;
 54     while(scanf("%d",&n)&&n)
 55     {
 56         memset(head,-1,sizeof(head));
 57         t=0;
 58         for(i=0;i<n-1;i++)
 59         {
 60             scanf("%d%d%d",&u,&v,&l);
 61             add(u,v,l);
 62             add(v,u,l);
 63         }
 64         memset(used,0,sizeof(used));
 65         d[1]=0;
 66         used[1]=true;
 67         f=r=0;
 68         q[r].id=1;
 69         q[r++].l=0;
 70         bfs();
 71         int max=d[1],mi=1;
 72         for(i=1;i<=n;i++)
 73         {
 74             if(d[i]>max)
 75             {
 76                 max=d[i];
 77                 mi=i;
 78             }
 79         }
 80         int s=mi;
 81         f=r=0;
 82         q[r].id=s;
 83         q[r++].l=0;
 84         memset(used,0,sizeof(used));
 85         memset(par,0,sizeof(par));
 86         used[s]=true;
 87         d[s]=0;
 88         bfs();
 89         max=d[1],mi=1;
 90         for(i=1;i<=n;i++)
 91         {
 92             if(d[i]>max)
 93             {
 94                 max=d[i];
 95                 mi=i;
 96             }
 97         }
 98         k=mi;
 99         f=r=0;
100         memset(used,0,sizeof(used));
101         used[s]=true;
102         d[s]=0;
103         while(k)
104         {
105             used[k]=true;
106             q[r].id=k;
107             q[r++].l=0;
108             d[k]=0;
109             k=par[k];
110             if(k==s)
111             break;
112         }
113         bfs();
114         max=d[1];
115         for(i=1;i<=n;i++)
116         {
117             if(d[i]>max)
118             {
119                 max=d[i];
120             }
121         }
122         printf("%d\n",max);
123     }
124     return 0;
125 }

转载于:https://www.cnblogs.com/caozhenhai/archive/2012/06/04/2535182.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/409792.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

channelsftp的put_java实现sftp客户端上传文件以及文件夹的功能代码

1.依赖的jar文件 jsch-0.1.53.jar2.登录方式有密码登录,和密匙登录代码:主函数:import java.util.Properties;import com.cloudpower.util.Login;import com.util.LoadProperties;public class Ftp {public static void main(String[] args) {Properties properties LoadPrope…

qtmessagebox对话框里自定义按钮文本_按钮你可以这样设计

作者&#xff1a;Michal Malewicz译者&#xff1a;Matrix审稿&#xff1a;afang原文链接&#xff1a;https://uxdesign.cc/design-better-buttons-a5c90a113280文章由交译所成员翻译&#xff0c;如需转载&#xff0c;请先申请授权。译文如下&#xff1a;按钮是触发它所描述功能…

zabbix入门之添加主机

添加主机的方法有两种&#xff1a;手动添加、自动发现 前提是&#xff1a;在被监控主机中安装zabbix-agent、zabbix-sender组件&#xff0c;并配置好启动服务。 手动添加&#xff1a; 自动发现&#xff1a; 这里等待1分钟左右即可发现主机 开启默认的动作 等待几分钟后即可在“…

程序5

【程序5】 题目&#xff1a;利用条件运算符的嵌套来完成此题&#xff1a;学习成绩>90分的同学用A表示&#xff0c;60-89分之间的用B表示&#xff0c;60分以下的用C表示。 1.程序分析&#xff1a;(a>b)?a:b这是条件运算符的基本例子。方法一&#xff1a;    function…

[html] 页面上的登录表单记住了密码(显示星号),但我又忘了密码,如何找回这个密码呢?

[html] 页面上的登录表单记住了密码&#xff08;显示星号&#xff09;&#xff0c;但我又忘了密码&#xff0c;如何找回这个密码呢&#xff1f; 将密码input的type改为text或者为空&#xff0c;则会显示输入框值。个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识…

如何保持连接_工高连城 | 连接器连接失效的原因有哪些

【温馨提示】本公众号是工高电子旗下工高连城中国连城双电商平台的官方公众号&#xff0c;简称工高连城连接器商城 中国连城平台定位&#xff1a;中国连接器行业专业供应链服务平台中国连接器行业的阿里巴巴永不落幕的online线上慕尼黑连接器展会。中国连城官网&#xff1a;w…

centos7删除文件命令_干货 | 玩转云文件存储——利用CFS实现web应用的共享访问...

京东云文件服务(Cloud File Service,以下简称&#xff1a;CFS)是一种高可靠、可扩展、可共享访问的全托管分布式文件系统。它可在不中断应用服务的情况下&#xff0c;根据您对文件系统的使用&#xff0c;按需扩展或缩减&#xff0c;并按照实际用量计费。采用NFS协议&#xff0c…

1-4dockerfile基本使用

1.创建一个文件夹 mkdir mynginxcd mynginxtouch Dockerfile [rootVM_0_10_centos mynginx]# cat Dockerfile FROM nginx:1.17 #第一次镜像RUN echo echo <h1>Hello, zjy!</h1> > /usr/share/nginx/html/index.html1-1、如果说没有第一层镜像&#xff0c;是…

[html] 移动端如何设置页面以全屏模式运行?

[html] 移动端如何设置页面以全屏模式运行&#xff1f; <meta name"apple-mobile-web-app-capable" content"yes" /> 个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目…

zTree v2.6 - v3.0 文件对比

转载于:https://www.cnblogs.com/MyFlora/archive/2012/06/05/2536377.html

cocos creator 数组_CoCos Creator中的数据类型

常用到的基本数据类型有Integer、String、Vec2、Color&#xff0c;下面的是它们最基本的使用展示&#xff1a;properties: {myNumber:{default:0,type:cc.Integer,},myString:{default:HaHa,},myVec2:{default:cc.Vec2.ZERO,},myColor:{default:cc.Color.RED,},myOtherNumber:0…

lvs服务器需要开启web服务么_Centos7搭建LVS+Keepalived高可用Web

LVS Keepalived 高可用集群Keepalived的设计目标是构建高可用的LVS负载均衡的集群&#xff0c;可以调用ipvsadm工具创建虚拟机&#xff0c;不仅仅用作双机热备&#xff0c;还可以使用keepalived构建更加方便快捷的节点&#xff0c;进行相关的健康检查&#xff0c;自动移除失效…

1-5docker私有镜像仓库

1、简单操作 1、在 https://cloud.docker.com 免费注册一个 Docker 账号 2、登录 docker login #命令登录 Docker Hub。 3、注销docker logout # 退出登录。 拉取镜像 4、docker search #命令来查找官方仓库中的镜像 5、docker pull 命令来将它下载到本地。#推送镜像到自己…

[html] 写html代码时,如果缺少了结束标签,你如何检测及如何预防?

[html] 写html代码时&#xff0c;如果缺少了结束标签&#xff0c;你如何检测及如何预防&#xff1f; HTML是一门宽松式语言。即使在语法上出现了错误&#xff0c;浏览器还是会直接解析并显示结果。 2, 为了预防类似缺少结束标签这类错误。可以用过由W3C提供的标记验证服务。通…

最长上升子序列——动态规划

这个是用动态规划做的一道题&#xff0c;先学习一下动态规划的概念吧。 用动态规划解题&#xff0c;就是要把问题分解为一个个子问题&#xff0c;对子问题进行求解&#xff0c;而子问题又可以继续进行分解&#xff0c;直到一定小的规模。DP与递归类似&#xff0c;但递归会导致…

NCoreCoder.Aop详解

于今天&#xff0c;功能终于完善度到比较满意的程度了 准备好好写一篇文章&#xff0c;而不是之前的流水账&#xff0c;分享一下最近这些天的踩坑 一开始AOP选的微软提供的DispatchProxy 关于这个&#xff0c;有大佬的文章&#xff0c;可以看看&#xff0c;了解一下 https://ww…

主类网络号怎么算_一文了解网络文化经营许可证的审批范围

3月10日&#xff0c;北京市文化和旅游局发布《关于电商类、教育类、医疗类、培训类、金融类、旅游类、美食类、体育类、聊天类不需要申请办理的特别提示》(以下简称《特别提示》)。《特别提示》指出&#xff0c;随着互联网技术的快速发展&#xff0c;利用互联网从事文化经营活动…

idea命令行运行多个客户端_推荐一款神仙颜值的 Redis 客户端工具,开源啦

日常开发过程中&#xff0c;项目常常都会使用Redis来做缓存或者Session服务器&#xff0c;为了更直观方便&#xff0c;开发者常常会使用一些可视化工具&#xff0c;如 Redis Desktop Manager、Redis Clent等&#xff0c;但界面UI做得不尽人意&#xff0c;作为当今时代&#xff…

[html] 写html代码时,如果缺少了结束标签,你如何检测及如何预防?

[html] 写html代码时&#xff0c;如果缺少了结束标签&#xff0c;你如何检测及如何预防&#xff1f; 现在的编辑器如vscode就有语法检测 可以装一些代码自动完成插件预防此类事件个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一…

使用matlab判断CDMA接收码片

CDMA码分多址matlab计算 Contents 运算前工作原题表述:码片长度m发送序列为数据分析:运算前工作 clc clear all close all原题表述: ▇4个站的码片序列是a,b,c,d disp(▇4个站的码片序列为:) a[-1 -1 -1 1 1 -1 1 1] b[-1 -1 1 -1 1 1 1 -1] c[-1 1 -1 1 1 1 -1 -1] d[-1 1 -1 …