codeforces1060E(若点思考困难就可以考虑边,解题时将数学关系列出来)

news/2025/3/20 13:26:58/文章来源:https://www.cnblogs.com/cavendishboys/p/18782864

Problem - E - Codeforces

解题思路

可以用公式将关系表示出来,然后再进行计算,很显然任意两点对答案的
贡献是两点距离除2然后向上取整,于是有公式

\[{\lceil \frac{两点距离}{2} \rceil}=\frac{两点距离+两点距离 \%2}{2} \]

故将所有点对都算一遍就有

\[ ans=\sum_{i=1}^{n}\sum_{j=i}^{n} (\frac{i和j的距离+两点距离 \%2}{2})\]

对于左边的部分,所有i,j的距离和可以只看边,因为一个边的左边的点一定会经过该边与右边的点相连,经过该边的总次数是左边的点*右边的点,也就是子树大小size[x] x (n-size[x])

然后是右边的部分,那就是距离为奇数的点对数,然后发现若是对树进行奇偶分层,同奇同偶的节点之间的距离就为偶数,反之则为偶数,故只需要计算在奇数层的点数×偶数层的点数即可

代码

#include<bits/stdc++.h>
#define int long long 
#define inf 1e18
#define MOD 1000000007
using namespace std;
void solve(){int n;cin>>n;vector<vector<int> >a(n+1);int u,v;for(int i=1;i<n;i++){cin>>u>>v;a[u].push_back(v);a[v].push_back(u);}int ans=0;int cnt[2]={0};vector<int>dep(n+1),sze(n+1);auto dfs=[&](auto self,int x,int y)->void{dep[x]=dep[y]+1;cnt[dep[x]%2]++;sze[x]=1;for(auto i:a[x]){if(i==y)continue;self(self,i,x);sze[x]+=sze[i];ans+=(sze[i]*(n-sze[i]));}};dfs(dfs,1,0);ans+=cnt[1]*cnt[0];cout<<ans/2ll<<endl;}signed main() {ios::sync_with_stdio(0);cout.tie(0),cin.tie(0);int test=1;while(test--)solve();return 0;
}int 

反思总结

  • 首先是以后再解决问题时可以考虑将数据概念之间的关系用公式表达出来,然后再对公式进行运算与变换

  • 对于点不太好思考的话就可以思考边的关系

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

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

相关文章

74.8K star!这个开源图标库让界面设计效率提升10倍!

Font Awesome 是全球最受欢迎的图标库和工具包,提供超过2000个免费图标和7000+专业图标,支持网页、桌面应用、移动端等多平台使用。开发者只需几行代码就能为项目添加精美矢量图标,设计师可直接下载SVG进行二次创作。嗨,大家好,我是小华同学,关注我们获得“最新、最全、最…

如何在Java程序中使用泛型

如何在Java程序中使用泛型泛型可以使你的代码更灵活、更易读,并能帮助你在运行时避免ClassCastExceptions。让我们通过这篇结合Java集合框架的泛型入门指南,开启你的泛型之旅。Java 5引入的泛型增强了代码的类型安全性并提升了可读性。它能帮助你避免诸如ClassCastException(…

BUUCTF从0到1:N1BOOk(web入门,常见的信息收集)

各位师傅们,第一次写博客文章: 就从最简单的web信息收集入门吧: 信息收集在不管时在红蓝对抗还是在ctf比赛中都是具有很大的作用 我们先看题:题目提示:信息收集,我们就直接打开虚拟机kali用dirsearch命令扫描网址: 对于新手来说dirsearch还未安装,dirsearch安装看这个:…

小白也能搞定系统搭建!7步教你选对开发平台!

你有没有遇到过这种情况: —— 想搞个客户管理系统,结果一搜教程,满屏都是代码,瞬间头大? —— 公司事儿一堆,老板还不想花钱买现成的系统,非要我们自己搭,可咱也不会写代码啊,这可咋整? 其实,现在做系统根本不用写代码,有些工具拖拽一下就能搭建,小白也能轻松上手…

如何学习 ROS+PX4

博客地址:https://www.cnblogs.com/zylyehuo/参考 https://www.bilibili.com/video/BV1vx4y1Y7Tu?spm_id_from=333.788.player.switch&vd_source=4acdb875c05ce9dccfce3cd6cfaac651

Mavros Mavlink

博客地址:https://www.cnblogs.com/zylyehuo/参考 https://www.bilibili.com/video/BV1x841167uG?spm_id_from=333.788.videopod.sections&vd_source=4acdb875c05ce9dccfce3cd6cfaac651

用于太阳能电池板的线性电机物联网控制器

随着能源成本的增加,太阳能电池板显然是减少这些费用的一条途径。即使有一对面板在一串(两个串联),和一个电网限制电流逆变器(如优秀的SUN-1000GTIL2和SUN-2000GTIL2系列),你可以节省很多钱-即使在冬天!后面的文章将详细介绍各种具有成本效益的选项和经验。 LMIC LMIC(线性电…

leetcode每日一题:最少翻转操作数

题目 2612. 最少翻转操作数 给你一个整数 n 和一个在范围 [0, n - 1] 以内的整数 p ,它们表示一个长度为 n 且下标从 0 开始的数组 arr ,数组中除了下标为 p 处是 1 以外,其他所有数都是 0 。 同时给你一个整数数组 banned ,它包含数组中的一些位置。banned 中第 i 个位置表…

黄色网站破解

最近再查资料, 莫名其妙弹窗黄色网站下载页面, 我的手机是iOS非越狱版本, 我当然是敢点击的, 即使有病毒也不怕。 51duhui是虚假的应用, 假冒app store风格下载安装, 狗日的,发现是下载mobileconfig, 看下下载的按钮,代码如下:function jumpurl(url) {setTimeout(f…

“人工智能+”智赋千行百业!

今年,DeepSeek在AI赛道一骑绝尘 以“火炎焱燚”之势迅速延伸 开启中国AI黄金时代 如今,中国的AI故事正在书写新篇 中国的科技强国之路也正越走越宽在DeepSeek引领的人工智能热潮中 作为云服务国家队 天翼云“息壤”智算平台率先完成 国产算力与DeepSeek-R1/V3 系列大模型的深…

使用Kettle将sqlserver库表结构和数据导入到oracle

一、官网下载kettle的压缩包pdi-ce-9.4.0.0-343.zip ,下载jtds-1.3.1.jar和ojdbc8-19.3.0.0.jar 将jar放入\data-integration\lib 目录下二、将zip解压后,是一个data-integration文件夹,找到spoon.bat 双击运行,即可打开kettle工具三、打开以后,右键点击转换,新建一个转换…

Windows 11 24H2 中文版、英文版 (x64、ARM64) 下载 (2025 年 3 月更新)

Windows 11 24H2 中文版、英文版 (x64、ARM64) 下载 (2025 年 3 月更新)Windows 11 24H2 中文版、英文版 (x64、ARM64) 下载 (2025 年 3 月更新) Windows 11, version 24H2 Enterprise Arm64 x64 (updated Mar 2025) 请访问原文链接:https://sysin.org/blog/windows-11/ 查看最…