思维+dfs+二染色,CF 1060E - Sergey and Subway

news2024/9/20 22:33:19

一、题目

1、题目描述

2、输入输出

2.1输入

2.2输出

3、原题链接

1060E - Sergey and Subway


二、解题报告

1、思路分析

考虑修改后的图,任意两点间的距离有何变化?

除2向上取整

那么我们要求的就是Σ[d / 2]

直接求太慢了,考虑求每个边的贡献,和奇数路径点对的贡献

每个边的贡献为上方点的数目乘下方点的数目,这个我们将权值下放到点上,dfs求子树大小即可

那么奇数路径点的数目如何求呢?

我们对树进行二染色,显然颜色不同的点对间路径权值就是奇数

那么问题就迎刃而解了

2、复杂度

时间复杂度: O(N)空间复杂度:O(N)

3、代码详解

 ​
#include <bits/stdc++.h>
using i64 = long long;
using i128 = __int128;
using PII = std::pair<int, int>;
using PIII = std::pair<int, PII>;
const int inf = 1e9 + 7, P = 1e9 + 7;

void solve() {
    int n;
    std::cin >> n;
    std::vector<std::vector<int>> g(n);
    for (int i = 1, a, b; i < n; ++ i) {
        std::cin >> a >> b;
        -- a, -- b;
        g[a].push_back(b);
        g[b].push_back(a);
    }


    std::vector<int> sz(n, 1);
    std::vector<bool> color(n);
    int con = 0;

    auto dfs = [&](auto&& self, int u, int fa) -> void {
        con += color[u];
        for (int v : g[u]) {
            if (v == fa) continue;
            color[v] = color[u] ^ 1;
            self(self, v, u);
            sz[u] += sz[v];
        }
    };

    dfs(dfs, 0, -1);

    i64 res = 1LL * con * (n - con);
    for (int x : sz)
        res += 1LL * (n - x) * x;
    std::cout << res / 2;
}


int main(int argc, char** argv) {
    std::ios::sync_with_stdio(false), std::cin.tie(0), std::cout.tie(0);
    int _ = 1;
    // std::cin >> _;
    while (_ --)
        solve();
    return 0;
}

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

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

相关文章

GitHub 站点打不开

遇到的问题 您是否遇到过GitHub网站打不开的情况&#xff0c;正如下图所示&#xff1a; 解决方案 以下是一些常见的解决方案&#xff1a; 1. 检查网络连接 确保你的设备已连接到互联网。尝试访问其他网站&#xff0c;确保不是你的网络问题。 C:\Vinca>ping github.…

Html:点击图标/链接发起QQ临时会话

我们在做前端开发的时候&#xff0c;会遇到用户需要点击一个图标可以发起QQ临时会话&#xff0c;这样不用添加好友也能沟通的&#xff0c;那我们就来看看如何实现这个功能&#xff1a; <a href"http://wpa.qq.com/msgrd?v3&uin你的QQ号码&siteqq&menuyes…

10分钟赚66元

需求&#xff0c;未开通个人养老金&#xff0c;支付宝上绑定任意行一张银行卡 1&#xff1a;支付宝扫 第一张图 二维码开通个人养老金账户 选择工商银行 会得48元红包 2&#xff1a;个人账户存1元 得18元红包

Excel第29享:基于sum嵌套sumifs的多条件求和

1、需求描述 如下图所示&#xff0c;现要统计12.17-12.23这一周各个人员的“上班工时&#xff08;a1&#xff09;”。 下图为系统直接导出的工时数据明细样例。 2、解决思路 首先&#xff0c;确定逻辑&#xff1a;“对多个条件&#xff08;日期、人员&#xff09;进行“工时”…

Open3D 计算点云FPFH特征

目录 一、概述 1.1法线估计 1.2SPFH&#xff08;Simplified Point Feature Histograms&#xff09;计算 1.3FPFH计算 二、代码实现 2.1关键函数 2.2完整代码 三、实现效果 3.1原始点云 3.2计算数据 一、概述 FPFH&#xff08;Fast Point Feature Histogram&#xff0…

又是三道简单的web题(2)

一、cookie 1.打开后是如下页面&#xff0c;抓包&#xff0c;关注cookie 2.发现cookie中有一个文件 3.直接访问这个文件&#xff0c;得到flag 二、employeeswork 打开后页面如下&#xff1a; 点击后出现一串php代码 审一下这个代码&#xff0c;需要添加参数work并且赋值work…

若依vue集成electron实现打包exe应用程序

一、修改package.json文件,加入相关依赖和配置 {"name": "ruoyi","version": "3.8.6","description": "若依管理系统","author": "若依","license":

十、函数栈帧的创建和销毁

前期学习的时候我们可能会有很多困惑&#xff0c;如&#xff1a; &#xff08;1&#xff09;局部变量的值是随机值&#xff1f; &#xff08;2&#xff09;为什么局部变量的值是随机值&#xff1f; &#xff08;3&#xff09;函数是怎么传参的&#xff1f;传参的顺序是怎样的…

Flask 用 Redis 缓存键值对-实例

Flask 使用起 Redis 来简直就是手到擒来&#xff0c;比 MySQL 简单多了&#xff0c;不需要那么多配置&#xff0c;实际代码就这么多&#xff0c;直接复制就能用。除了提供简单实用的实例以外&#xff0c;本文后面还会简单介绍一下 Redis 的安装与使用&#xff0c;初学者也能一看…

数据分析入门指南:表结构数据(三)

在数字化转型的浪潮中&#xff0c;表结构数据作为企业决策支持系统的核心要素&#xff0c;其重要性日益凸显。本文深入剖析了表结构数据的本质特征、高效处理策略&#xff0c;并探讨了其在现代商业智能环境中的广泛应用&#xff0c;旨在为数据分析师与决策者提供前沿洞察与实战…

Java | Leetcode Java题解之第227题基本计算器II

题目&#xff1a; 题解&#xff1a; class Solution {public int calculate(String s) {Deque<Integer> stack new ArrayDeque<Integer>();char preSign ;int num 0;int n s.length();for (int i 0; i < n; i) {if (Character.isDigit(s.charAt(i))) {num…

python-26-零基础自学python-如何创建文件、读取数据、处理多个文件及程序异常处理等

学习内容&#xff1a;《python编程&#xff1a;从入门到实践》第二版第10章 知识点&#xff1a; 程序异常如何处理&#xff1f;try-except-else 多个文件处理 创建文件&#xff1a;在文件中储存数据 练习内容&#xff1a; 练习10-8&#xff1a;猫和狗 创建文件cats.txt和…

利用 Selenium 自动化抓取 Web of Science 论文数据:以 IEEE SENSORS JOURNAL 为例

在当今数字化时代&#xff0c;科研工作者面临着海量学术信息的挑战。有效地收集、筛选和分析相关领域的最新研究成果&#xff0c;对于保持科研竞争力至关重要。然而&#xff0c;手动检索和整理学术文献不仅耗时耗力&#xff0c;还容易出现疏漏。为了解决这一问题&#xff0c;我…

Nginx: Rewrite功能配置/Nginx反向代理/Nginx的安全控制SSL

Rewrite功能配置 Rewrite是Nginx服务器提供的一个重要基本功能&#xff0c;是Web服务器产品中几乎必备的功能。主要的作用是用来实现URL的重写。www.jd.com 注意:Nginx服务器的Rewrite功能的实现依赖于PCRE的支持&#xff0c;因此在编译安装Nginx服务器之前&#xff0c;需要安…

QGroundControl连接运行在Docker中的PX4固件模拟器

1.通过docker启动PX4无人机 docker run --rm -it jonasvautherin/px4-gazebo-headless:1.14.3 启动成功&#xff1a; PX4完全启动OK如下&#xff1a; 会看到pxh> INFO [commander] Ready for takeoff! 执行takeoff指令 查看运行docker容器与QGC客户端的主机IP&#xff1a; …

Java | Leetcode Java题解之第228题汇总区间

题目&#xff1a; 题解&#xff1a; class Solution {public List<String> summaryRanges(int[] nums) {List<String> ans new ArrayList<>();for (int i 0, j, n nums.length; i < n; i j 1) {j i;while (j 1 < n && nums[j 1] num…

Codeforces Round #956 (Div. 2) and ByteRace 2024 E. I Love Balls(概率期望)

题目 思路来源 官方题解 题解 特殊球不会改变普通球的顺序&#xff0c;所以都是alice拿一半里较多的部分 n-k1一半向上取整就是(n-k2)/2&#xff0c;同理n-k个一般向上取整(n-k1)/2 每个特殊球独立地来看&#xff0c;在每个空隙的概率相同 所以分别统计特殊球和非特殊球的…

Win11常用快捷键整理,带你重启电脑体验(动图演示)

名人说:人生到处知何似,应似飞鸿踏雪泥。 ——苏轼《和子由渑池怀旧》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、常用快捷键1、Win + X2、Win + Q3、Win + E4、Win + T5、Win + Tab6、Win + V7、Win + D二、其它实用快捷键8、Ctrl + Shift + Es…

YOLOv10改进 | 添加注意力机制 | 添加ACmix自注意力与卷积混合模型改善模型特征识别效率(包含二次创新PSA机制)

一、本文介绍 本文给大家带来的改进机制是ACmix自注意力机制的改进版本&#xff0c;它的核心思想是&#xff0c;传统卷积操作和自注意力模块的大部分计算都可以通过1x1的卷积来实现。ACmix首先使用1x1卷积对输入特征图进行投影&#xff0c;生成一组中间特征&#xff0c;然后根…

集创北方ICN6202 低功耗MIPIDSI转2 PORT LVDS 支持1080P分辨率,成熟批量产品

ICN6202描述&#xff1a; ICN6202是一个接收MIPIDSI输入和发送LVDS输出的桥接芯片。MIPIDSI最多支持4个车道&#xff0c;每个车道的最大运行频率为1Gbps&#xff1b;总最大输入带宽为4Gbps&#xff1b;并且还支持MIPI定义的ULPS&#xff08;超低功耗状态&#xff09;。ICN6202…