2023河南萌新联赛第(六)场:河南理工大学 C - 旅游

news2024/12/25 22:19:12

2023河南萌新联赛第(六)场:河南理工大学 C - 旅游

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
Special Judge, 64bit IO Format: %lld

题目描述

小C喜欢旅游,现在他要去DSH旅游,DSH里有nnn个城市和 n − 1 n-1 n1 条双向道路(每条道路长度为1),每条道路连接两个城市,并且任意两个城市都可以通过这些的道路互相到达。现在小C要使用魔法指定传送到DSH里的一个城市,作为他旅游的出发城市,小C旅游遵从以下原则:

  1. ​当小C抵达一个城市的时候,他会去跟当前这个城市相连的城市;
  2. ​他只去他以前没有去过的城市;
  3. ​在每个城市,小C以相同的概率移动去上述符合要求的城市;
  4. ​当没有这样的城市(可走)时,小C就停下了。

​ 由于小C太喜欢DSH了,所以请你告诉小C,在他可以指定传送出发城市的情况下,他的旅游路径的期望最大值是多少。

输入描述:

第1行一个整数 n ( 1 ≤ n ≤ 100000 ) n(1\leq n \leq 100000) n(1n100000),表示DSH有 n n n个城市;
接下来 n − 1 n-1 n1行,每行包含两个整数 a a a b ( 1 ≤ a , b ≤ n ) b (1 \leq a, b \leq n) b(1a,bn),表示城市 a a a和城市 b b b之间有一条双向道路。

输出描述:

输出一个数,表示这次旅游期望可以达到的最大值,保留三位小数。

示例1

输入

4
1 2
1 3
2 4

输出

3.000

说明


如上图:
如果初始传送至城市3,那么他的旅游路径是 ( 3 , 1 , 2 , 4 ) (3,1,2,4) (3,1,2,4),总距离为3,期望为3;
如果初始传送至城市1,那么他的旅游路径可以是 ( 1 , 2 , 4 ) (1,2,4) (1,2,4),总距离为2,也可以是 ( 1 , 3 ) (1,3) (1,3),总距离为1,所以期望是1.5;
如果初始传送至城市2,那么他的旅游路径可以是 ( 2 , 4 ) (2,4) (2,4),总距离是1,也可以是 ( 2 , 1 , 3 ) (2,1,3) (2,1,3),总距离是2,所以期望是1.5;
如果初始传送至城市4,那么他的旅游路径是 ( 4 , 2 , 1 , 3 ) (4,2,1,3) (4,2,1,3),总距离为3,期望为3。
所以最大期望是3。

示例2

输入

7
1 4
1 2
4 5
4 3
2 7
2 6

输出

3.000

在这里插入图片描述

import java.io.*;
import java.util.ArrayList;

public class Main {

    static int N = 100010;
    static ArrayList<Integer>[] adj = new ArrayList[N];
    static double[] downsum = new double[N];
    static double[] downavg = new double[N];
    static double[] upsum = new double[N];
    static double[] upavg = new double[N];

    public static void dfs1(int u, int fa) {
        for (int v : adj[u]) {
            if (v == fa) continue;
            dfs1(v, u);
            downsum[u] += downavg[v];
        }
        if (adj[u].size() == 1) downavg[u] = 0;
        else downavg[u] = downsum[u] / (adj[u].size() - (fa != 0 ? 1 : 0)) + 1;
    }

    public static void dfs2(int u, int fa) {
        for (int v : adj[u]) {
            if (v == fa) continue;
            upsum[v] = upavg[u] + downsum[u] - downavg[v];
            upavg[v] = upsum[v] / (adj[u].size() - 1) + 1;
            dfs2(v, u);
        }
    }

    public static void main(String[] args) throws IOException {
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        int n = Integer.parseInt(bf.readLine());
        if (n == 1) {
            bw.write("0.000\n");
        } else if (n == 2) {
            bw.write("1.000\n");
        } else {
            for (int i = 1; i <= 100000; i++) adj[i] = new ArrayList<>();
            for (int i = 1; i <= n - 1; i++) {
                String[] str = bf.readLine().split(" ");
                int u = Integer.parseInt(str[0]);
                int v = Integer.parseInt(str[1]);
                adj[u].add(v);
                adj[v].add(u);
            }
            int root = 1;
            while (adj[root].size() == 1) root++;
            dfs1(root, 0);
            dfs2(root, 0);
            double res = 0;
            for (int i = 1; i <= n; i++) {
                res = Math.max(res, 1 + (upavg[i] + downsum[i]) / adj[i].size());
            }
            bw.write(String.format("%.3f\n", res));
        }
        bw.close();
    }
}

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

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

相关文章

Global Mapper Pro24.1中文版安装教程

作为一款先进而全面的地理空间软件&#xff0c;Global Mapper Pro在地形分析、点云编辑、无人机收集的图像处理等方面表现出色。该程序的最新版本致力于扩展这一功能&#xff0c;包括Python编程语言集成、点云分割辅助手动分类以及地形绘制手动高程网格编辑。Global Mapper Pro…

Mybatis的核心配置

目录 一、environments环境配置 二、propertis资源配置 三、typeAliases类型别名 四、mappers映射 五、其他标签 一、environments环境配置 标签名描述<environments>用于配置多个环境的容器标签&#xff0c;可以包含多个 <environment> 子标签。<environm…

第6天----【位运算进阶之-----位与()】七夕特别版

今天我们来学习C语言的位与。 ❤️C语言的位与&#xff08;&&#xff09;操作是一种按位运算符&#xff0c;用于对两个操作数的每个对应位执行逻辑与操作。它的操作规则如下&#xff1a; 如果两个操作数的对应位都为1&#xff0c;则结果的对应位也为1。&#xff08;全1才…

vue vs react vue3 和 react区别

vue 简介&#xff1a;渐进式 JavaScript 框架 来源&#xff1a;最初由 Evan You &#xff08;尤雨溪&#xff09;于2014年开发。Evan You之前在Google研究过AngularJS&#xff0c;并提取了Angular的部分特性以提供一个更轻量级的框架 版本&#xff1a; vue 1x&#xff1a;2014…

如何使用Nmap进行端口扫描和服务识别?

今天将重点介绍如何使用Nmap进行端口扫描和服务识别。Nmap是一款强大的网络扫描工具&#xff0c;它可以帮助我们快速了解目标主机的开放端口和运行的服务。 1. 什么是Nmap&#xff1f; Nmap&#xff08;Network Mapper&#xff09;是一个开源的网络扫描工具&#xff0c;用于发…

xcode15 change

jump to define 由原先的 control command left click 改为command left click

安达发|APS生产排产软件的作用有哪些?

生产排产管理软件作用有哪些&#xff1f;很多生产型企业在生产计划排产环节&#xff0c;基本还靠手工方式在Excel中进行。而且还因参与制定和使用表格的人较多&#xff0c;表格制作水平参差不齐&#xff0c;极易造成生产计划及后续环节管理混乱。此时&#xff0c;就需借助专业的…

回归预测 | MATLAB实现GA-ELM遗传算法优化极限学习机多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现GA-ELM遗传算法优化极限学习机多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09; 目录 回归预测 | MATLAB实现GA-ELM遗传算法优化极限学习机多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09;效果一览基本介绍程序…

外包干了三年,技术退步明显...

先说一下自己的情况。大专生&#xff0c;19年通过校招进入湖南某软件公司&#xff0c;干了接近3年的测试&#xff0c;今年年上旬&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落&#xff01;而我已经在一个企业干了三年&#xff0c…

【音视频】基于webrtc的聊天室的设计

目录 术语 webrtc建连流程 系统整体架构 信令服务器房间状态管理 用户加入房间流程 用户加入房间并推流&#xff1a; 其他用户订阅此用户流 用户加入房间并订阅房间其他所有用户 用户退出房间流程 平行集群模式​编辑 第一阶段demo 设计 参考文章 术语 sdp: 在webrt…

如何使用 HOOPS Exchange SDK 和 Polygonica Bridge

这里将讨论使用 HOOPS Exchange 和 Polygonica 以及它们之间的桥梁进行 CAD 访问和网格处理。--提供Crack HOOPS 全系列SDK HOOPS Exchange 基础知识 首先&#xff0c;让我们简单回顾一下 HOOPS Exchange。HOOPS Exchange 是一款具有 C 接口的数据访问 SDK&#xff0c;支持导入…

AMEYA360邀您参加越南NEPCON VIETNAM电子元器件材料及生产设备展览会

9月6日-8日&#xff0c;极具影响力的2023越南电子元器件展(Nepcon Vietnam)即将在越南河内展览中心(I.C.E) 隆重举办。 越南电子元器件材料及生产设备展览会是越南唯一的电子制造SMT、测试技术、设备和支持产业的展会&#xff0c;也是励展博览集团旗下知名展会品牌NEPCON系列展…

夏日渲染季 | 效果图充值狂欢惠,清凉夏日即刻拥有!

炎炎夏日&#xff0c;狂欢不停&#xff01; 蓝海创意云效果图渲染大放价~~~ 活动时间&#xff1a;即日起-2023.10.31 即刻开启你的夏日清凉模式吧&#xff01; 活动范围&#xff1a;所有效果图用户 活动时间&#xff1a;即日起-2023.10.31 活动内容&#xff1a; 特别说明:…

JavaWeb 速通Filter

目录 一、Filter快速入门 1.基本介绍 : 2.基本原理 : 3.入门实例 : 4.生命周期 : 二、FilterConfig和FilterChain 1.FilterConfig : 1 基本介绍 2 应用实例 2.FilterChain : 1 基本介绍 2 基本原理 3 应用实例 4 使用细节 一、Filter快速入门 1.基本介绍 : Filter&…

【Python原创设计】基于Python Flask 机器学习的全国+上海气象数据采集预测可视化系统-附下载链接以及详细论文报告,原创项目其他均为抄袭

基于Python Flask 机器学习的全国上海气象数据采集预测可视化系统 一、项目简介二、开发环境三、项目技术四、功能结构五、运行截图六、功能实现七、数据库设计八、源码获取 一、项目简介 在信息科技蓬勃发展的当代&#xff0c;我们推出了一款基于Python Flask的全国上海气象数…

斯里兰卡生态系统服务价值量计算

斯里兰卡生态服务价值计算 一、引言 生态系统服务价值是指人类间接或直接从生态系统各服务功能中获得的收益&#xff0c;对人类社会福祉起着极其重要的贡献。生态系统服务价值核算作为一项基础性研究工作&#xff0c;对生态安全格局的构建、生态补偿以及生态文明建设等研究有重…

【Linux】socket编程(一)

目录 预备知识 理解源ip地址和目的ip地址 认识端口号 理解"端口号"和"进程ID" 认识TCP和UDP协议 网络字节序 socket编程接口 socket常见API socket bind listen accept conncet sockaddr与sockaddr_in socket的使用(简易UDP网络程序的编…

17款奔驰S400升级原厂无钥匙进入系统,提升您的便利性

奔驰无钥匙进入功能&#xff0c;只要身上装着车钥匙进入车内&#xff0c;车辆就能感应到钥匙的存在&#xff0c;这时只需按下启动键就可启动车辆了 奔驰无钥匙进入功能主要有两大使用体验&#xff0c;首先就是要注意主驾驶位车门的有效检测距离不小于1.5m&#xff0c;其他门钥匙…

2022年09月 C/C++(三级)真题解析#中国电子学会#全国青少年软件编程等级考试

第1题&#xff1a;课程冲突 小 A 修了 n 门课程, 第 i 门课程是从第 ai 天一直上到第 bi 天。 定义两门课程的冲突程度为 : 有几天是这两门课程都要上的。 例如 a11&#xff0c;b13&#xff0c;a22&#xff0c;b24 时, 这两门课的冲突程度为 2。 现在你需要求的是这 n 门课中冲…

vue 中 axios 的安装及使用

vue 中 axios 的安装及使用 1. axios 安装2. axios使用 1. axios 安装 首先&#xff0c;打开当前的项目终端&#xff0c;输入 npm install axios --save-dev验证是否安装成功&#xff0c;检查项目根目录下的 package.json,其中的 devDependencies 里面会多出一个axios及其版本…