Cow Marathon(树的直径)(暂存)

2023-11-16

Cow Marathon

After hearing about the epidemic of obesity in the USA, Farmer John wants his cows to get more exercise, so he has committed to create a bovine marathon for his cows to run. The marathon route will include a pair of farms and a path comprised of a sequence of roads between them. Since FJ wants the cows to get as much exercise as possible he wants to find the two farms on his map that are the farthest apart from each other (distance being measured in terms of total length of road on the path between the two farms). Help him determine the distances between this farthest pair of farms.
有n个农田和m条路,以及每条路的方向(方向在这道题中没有用),求最长的一条路,也就是两点间的最大距离,即树的直径.
Input

  • Lines 1…: Same input format as “Navigation Nightmare”.
    Output
  • Line 1: An integer giving the distance between the farthest pair of farms.
    Sample Input
    7 6
    1 6 13 E
    6 3 9 E
    3 5 7 S
    4 1 3 N
    2 4 20 W
    4 7 2 S
    Sample Output
    52
    Hint
    The longest marathon runs from farm 2 via roads 4, 1, 6 and 3 to farm 5 and is of length 20+3+13+9+7=52.

vj又崩了,交不了,先存上
这道题的输入就是输入农场数n和路的条数m,
然后接下来m行是连接的两个农场和之间的距离(路是无向的)

#include<iostream>
#include<algorithm>
#include<string.h>
#include<queue>
using namespace std;

int n,m;//n是农场数,m是路的个数
int a,b,cost;//两个农场的位置以及距离(存的时候两个方向都要存)
char d;
int dis[50005];//到每个农场的距离 
int vis[50005]; 
int ed,ans,num;
int head[50005];
struct cow{
	int from;//农场的序号1
	int to;//农场的序号2 
	int next;
	int llng;//距离 
	//friend bool operator<(cow a,cow b){
	//	return a.llng <b.llng ;
	//} 
};
cow e1[100005];
void add(int a,int b,int c){
	e1[num].from =a;
	e1[num].to =b;
	e1[num].llng =c;
	e1[num].next =head[a];
	head[a]=num++;
}
void bfs(int x){
	memset(vis,0,sizeof(vis));
	memset(dis,0,sizeof(dis));
	queue<int> que;
	que.push(x);
	vis[x]=1;
	ans=0;
	while(!que.empty()){
		int u,v,i;
		u=que.front();
		//cout<<"u:"<<u<<endl;
		que.pop();
		for(i=head[u];i!=-1;i=e1[i].next ){
		v=e1[i].to ;
		//cout<<"v:"<<v<<endl; 
		if(!vis[v]){
			
			if(dis[v]<dis[u]+e1[i].llng )
				dis[v]=dis[u]+e1[i].llng;
				vis[v]=1;
				que.push(v);
		//		cout<<"v:::::"<<v<<endl;
			}
		}
	} 
	for(int i=1;i<=n;i++){
	if(dis[i] >ans){
			ans=dis[i];
			ed=i;
		//	cout<<"ans:"<<ans<<" "<<i<<endl;
			}
		} 
	} 

int main(){
	ios::sync_with_stdio(0);
	cin.tie(),cout.tie();
	cin>>n>>m;
	int num=1;
	memset(head,-1,sizeof(head));
	for(int i=0;i<m;i++){
		cin>>a>>b>>cost>>d;
		add(a,b,cost);
		add(b,a,cost);
	}
	
	bfs(1);
	
	bfs(ed);
	cout<<ans<<endl;
	
	return 0;
}

/*
7 8
1 6 13 E
6 3 9 E
3 5 7 S
4 1 3 N
2 4 20 W
4 7 2 S
7 6 67 S
7 5 76 W


*/

(样例是过了,就是不知道会不会超时。。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Cow Marathon(树的直径)(暂存) 的相关文章

  • Xilinx Vivado .coe文件生成

    一 COE格式文件生成 由于Quartus ii软件ROM用的是mif格式的文件 且可以用软件Guagle wave生成正弦波 三角波 锯齿波 我们可以利用这个软件先生成数据 然后再将其转化为符合COE格式的文件 具体请参考以下步骤 1 先
  • JavaWeb中如何将JSP文件的编码格式修改为UTF-8

    目录 一 修改原因 二 修改步骤 在使用eclipse学习jsp时 很多默认的编码都是ISO 8859 15 而我们需要使用的是utf 8编码 我们第一个接触改变jsp编码的方式可能都是在需要修改的jsp中修改 如下 将charset与pa
  • python线程与进程概述_1.24

    多进程与多线程 进程 Process 是计算机中的程序关于某数据集合上的一次运行活动 是系统进行资源分配和调度的基本单位 是操作系统结构的基础 线程 Thread 有时被称为轻量级进程 Lightweight Process LWP 是程序
  • Java 20新特性:Scoped Values 作用域值(孵化器)

    以下内容由New Bing自动生成 仅介绍了Scoped Values的部分内容 如果需要详细的Scoped Values信息 可以查阅官方JEP 429文档 Java JEP 429是 JDK 20 中引入的唯一一个新特性 目前还处于孵化
  • android点击按钮弹出输入框,android 弹出框(输入框和选择框)

    1 输入框 final EditText inputServer new EditText this inputServer setFilters new InputFilter new InputFilter LengthFilter 5
  • tcp短连接TIME_WAIT问题解决方法大全(3)——tcp_tw_recycle

    tcp tw recycle和tcp timestamps 参考官方文档 http www kernel org doc Documentation networking ip sysctl txt tcp tw recycle解释如下 t
  • ELK日志收集分析服务

    任务要求 搭建ELK集群 收集日志信息并展示 任务拆解 认识ELK 部署elasticsearch集群并了解其基本概念 安装elasticsearch head实现图形化操作 安装logstash收集日志 安装kibana日志展示 安装fi
  • Linux生产者消费者模型(POSIX信号量)

    目录 一 生产者消费者模型 1 基本概念 2 模型特点 3 模型优点 二 基于BlockingQueue的生产者消费者模型 1 基本概念 2 单生产者 单消费者为例进行模拟实现 3 基于计算任务的生产者消费者模型 三 POSIX信号量 1
  • Java经典面试:vuejs调用java后端

    第一个暴击 Spring 上一份Spring的手绘思维脑图 就像是个知识大纲总结 预览一下Spring的知识点 心里有个谱 不过这边我是采用的截图方式 为了把全部的内容都截取出来 所以整个就比较小 可能不是很清晰 Spring面试真题 七大
  • C语言进阶之路:对任意两个数字求和

    提示 可以参考笔者之前的文章 来对此篇博客进行思考 文章目录 介绍 一 如何正确去书写代码 二 使用步骤 1笔者所写代码 2 重要代码部分 总结 介绍 对本文要记录的大概内容 对任意两个数字进行求加减乘除运算 小数 以下是本篇文章正文内容
  • VMware-克隆虚拟机

    VMware 克隆虚拟机 在使用VMware过程中需要经常克隆虚拟机 但是在克隆完整虚拟机后通常都会出现一个问题就是 网络无法连接因为网卡冲突了 告诉大家如何解决 虚拟机克隆 在管理中选择克隆 克隆当前虚拟机状态 选择完整克隆 重新生成网卡
  • 数据结构和算法--链栈(C++实现)

    定义 栈是限定仅在表尾进行插入和删除操作的线性表 把允许插入和删除的一端称为栈顶 top 另一端称为栈底 bottom 不含任何数据元素的栈称为空栈 栈又称为后进先出 Last In First Out 的线性表 简称LIFO结构 incl
  • 【网络编程】网络编程知识点总结

    文章目录 UDP也需要端口号 基于TCP的socket通信中 简易服务端的六步依次为 基于TCP的socket通信中 简易客户端的四步依次为 介绍一下在linux环境下 服务器这六步的使用到的一些函数 参数 返回值类型等 介绍一下在linu
  • pycharm连接远程ssh服务器,Ctrl+S不能自动上传代码

    各位码友在用pycharm连接远程服务器编写代码时 有些情况下 需要保持本地文件和远程文件的同步 可以设置成自动上传 或者按Ctrl S才会上传 设置步骤如以下截图所示 本来这样操作就行了 但是笔者有时设置成按Ctrl S进行保存 按Ctr
  • 基于Pytorch1.8.0+Win10+RTX3070的MNIST网络构建与训练

    直接上代码 先上整个的代码 import torch import torchvision from torch utils data import DataLoader import matplotlib pyplot as plt im
  • Vue3 用src动态引入本地图片

    Vue3 用src动态引入本地图片 东非不开森的主页 躲起来的星星也在努力发光 你也要 如有错误或不足之处 希望可以指正 非常感谢 src动态引入本地图片 1 vue cli搭建的项目 2 vite搭建的项目动态引入本地图片 1 vue c
  • 微信小程序 表单 form 组件

    完整微信小程序 Java后端 技术贴目录清单页面 必看 表单 将组件内的用户输入的switch input checkbox slider radio picker 提交 当点击 form 表单中 form type 为 submit 的
  • 《微机原理》-绪论

    微机原理 文章目录 微机原理 前言 一 微型计算机系统组成 1 早期计算机硬件系统 2 微型计算机系统硬件组成 二 存储器 前言 本系列博客主要是观看西安电子科技大学看老师于2009年录制的 微机原理视频 课程的CPU以8086CPU为例进
  • 基于粒子群改进深度信念网络的回归分析,基于PSO-DBN的回归分析

    目录 背影 DBN神经网络的原理 DBN神经网络的定义 受限玻尔兹曼机 RBM 粒子群算法的原理 DBN的粒子群改进深度信念网络的回归分析 基本结构 主要参数 数据 MATALB代码 结果图 展望 背影 DBN是一种深度学习神经网络 拥有提

随机推荐

  • elementUi中的图片预览功能(图片放大、缩小)preview-src-list属性

    一 图片有时候需要放大预览 放大后可支持放大缩小等功能 element中的preview src list属性可以实现 二 主要代码
  • 2023前端面试题及答案整理(JavaScript)

    JS类型 string number boolean undefined null symbol es6 BigInt es10 object 值类型和引用类型的区别 两种类型的区别是 存储位置不同 值类型存储在栈 stack 中 占空间小
  • sublime Text3下载与安装以及解决安装Install Package时遇见的问题

    sublime Text3下载与安装以及解决安装Install Package时遇见的问题 最近下载安装sublime Text3后 在安装Install Package时遇到了几个问题 网上搜了一大圈终于解决了 特此记录为以后之便 一 下
  • 关于光纤收发器的一些基本常识介绍

    光纤收发器是网络数据传输中必不可缺少的一种设备 那么 什么是光纤收发器呢 光纤收发器都有什么组成的呢 光纤收发器是怎么分类的呢 光纤收发器有哪些特点呢 光纤收发器在数据传播过程中起到什么作用呢 接下来我们就跟随飞畅科技的小编一起来详细了解下
  • idea自动导包、生成作者日期、快捷键自动生成序列化版本号、maven配置。

    文件编码修改 在菜单中的File gt Settings gt Editor gt File Encoding下修改项目文件的编码 自动导包删除包 在菜单中的File gt Settings gt Editor gt General gt
  • docker Centos7镜像无法联网

    docker镜像启动之后 ping外网的IP无法连通 丢失率100 启动命令的问题 启动的时候需要添加网络策略参数 net 建议启动命令如下 docker run net host privileged itd centos 7 usr s
  • switch语句中的case结尾是否必须添加break语句?

    一般必须在case语句结尾添加break语句 但不是一定必须的 switch c 语句中c可以是int long char unsigned int等类型 唯独不可以是float类型 我百度搜到的比较容易理解的解释如下 一 不加break就
  • Sentinel注解集合排序-代码笔记

    private static void insertSorted List
  • Console.WriteLine打印中文为何出乱码?

    因为你当前环境代码页是437 是美国英语的字符编码 你把你环境设置成936就是简体中文字符编码环境了 你当前的是这个 Console OutputEncoding Encoding GetEncoding 437 设置成这样就支持中文编码了
  • 虚拟机运用vscode实现可视化代码跟踪调试

    可视化代码跟踪调试 一 安装基于跨平台多类型代码编辑器VScode 二 安装vscode的c c 插件 三 配置launch json和task json这两个文件 1 创建文件 2 打开vscode 四 编译调试c 程序 一 安装基于跨平
  • 隐私协议&授权访问的实现

    目录 交互逻辑 隐私协议的实现 初始化隐私协议 隐私协议确认弹窗 再次确认弹窗 隐私政策 用户协议界面 用户协议界面 隐私政策界面 隐私协议的文档 授权访问的实现 初始化授权访问 授权访问工具类 隐私协议 授权访问的示例项目 交互逻辑 用户
  • 华为OD机试 - 约瑟夫问题(Java)

    题目描述 输入一个由随机数组成的数列 数列中每个数均是大于 0 的整数 长度已知 和初始计数值 m 从数列首位置开始计数 计数到 m 后 将数列该位置数值替换计数值 m 并将数列该位置数值出列 然后从下一位置从新开始计数 直到数列所有数值出
  • Caffe源码中syncedmem文件分析

    Caffe源码 caffe version 09868ac date 2015 08 15 中有一些重要文件 这里介绍下syncedmem文件 1 include文件 1
  • Qt之qcustomplot绘图总结

    1 绘图类 QCPGraph 折线图 QCPCurve 用于曲线图 可以有循环 QCPBars 柱形图 如果有多个QCPBars 可以依次重叠 QCPStatisticalBox 需实例化 盒子图 QCPColorMap 实例化 色谱图 Q
  • 2019年‘泰迪杯’数据分析职业技能大赛A题——个人代码分享

    目录 题目 任务 1 数据预处理与统计 任务 2 数据分析与可视化 代码展示 任务一 任务二 题目 任务 1 数据预处理与统计 任务 1 1 对数据作必要的预处理 在报告中列出处理步骤 将处理后的结 国保存为 task1 1 csv 任务
  • C++之string赋值

    string s string a abcdefg 1 将字符串a的元素赋值逐一赋值给另一字符串s s a i 2 将字符串a完全赋值给新字符串s s assign a 3 将字符串a的一部分赋值给新的字符串s start是截取字符串的首位
  • 【转】mysql索引(最左匹配原则)

    阐述 通常我们在建立联合索引的时候 相信建立过索引的同学们会发现 无论是Oracle 还是 MySQL 都会让我们选择索引的顺序 比如我们想在 a b c 三个字段上建立一个联合索引 我们可以选择自己想要的优先级 a b c 或是 b a
  • 常用语言的线程模型(Java、go、C++、python3)

    背景知识 软件是如何驱动硬件的 硬件是需要相关的驱动程序才能执行 而驱动程序是安装在操作系统内核中 如果写了一个程序A A程序想操作硬件工作 首先需要进行系统调用 由内核去找对应的驱动程序驱使硬件工作 而驱动程序怎么让硬件工作的呢 驱动程序
  • STM8L在IAR编译时出现Warning[Pe188]: enumerated type mixed with another type

    STM8L在IAR编译时出现Warning Pe188 enumerated type mixed with another type 给枚举变量赋值了其它类型 产生的原因可能和编译器有关 具体原因尚不清楚 但可以在调用处加入强制类型转换下
  • Cow Marathon(树的直径)(暂存)

    Cow Marathon After hearing about the epidemic of obesity in the USA Farmer John wants his cows to get more exercise so h