当前位置: 首页 > news >正文

打卡信奥刷题(3505)用C++实现信奥题 P10842 【MX-J2-T3】Piggy and Trees

P10842 【MX-J2-T3】Piggy and Trees

题目背景

原题链接:https://oier.team/problems/J2D。

题目描述

给你一棵n nn个结点的树。

定义f ( u , v , i ) f(u, v, i)f(u,v,i)为,在所有满足† dis ( u , x ) + dis ( v , x ) = dis ( u , v ) ^\dagger\text{dis}(u, x) + \text{dis}(v, x) = \text{dis}(u, v)dis(u,x)+dis(v,x)=dis(u,v)的点x xx中,dis ( x , i ) \text{dis}(x, i)dis(x,i)的最小值。

∑ u = 1 n ∑ v = u + 1 n ∑ i = 1 n f ( u , v , i ) \sum\limits_{u = 1}^n \sum\limits_{v = u + 1}^n \sum\limits_{i = 1}^n f(u, v, i)u=1nv=u+1ni=1nf(u,v,i)10 9 + 7 10^9 + 7109+7取模的值。

† dis ( u , v ) ^\dagger\text{dis}(u, v)dis(u,v)为树上u , v u, vu,v两点的路径长度。特别地,dis ( u , u ) = 0 \text{dis}(u, u) = 0dis(u,u)=0

输入格式

第一行包含一个整数n nn,表示树的结点数。

之后的n − 1 n - 1n1行中的第i ii行包含两个整数u i , v i u_i, v_iui,vi,表示树上的一条边。

输出格式

输出一行一个整数,表示答案。

输入输出样例 #1

输入 #1

4 1 2 1 3 1 4

输出 #1

9

输入输出样例 #2

输入 #2

6 1 2 2 3 3 4 4 5 5 6

输出 #2

70

输入输出样例 #3

输入 #3

10 1 2 1 3 1 4 2 5 3 6 2 7 4 8 8 9 9 10

输出 #3

536

说明/提示

【样例解释】

在样例1 11中,所有非0 00f ( u , v , i ) f(u, v, i)f(u,v,i)的值为:

  • f ( 1 , 2 , 3 ) = 1 f(1, 2, 3) = 1f(1,2,3)=1
  • f ( 1 , 2 , 4 ) = 1 f(1, 2, 4) = 1f(1,2,4)=1
  • f ( 1 , 3 , 2 ) = 1 f(1, 3, 2) = 1f(1,3,2)=1
  • f ( 1 , 3 , 4 ) = 1 f(1, 3, 4) = 1f(1,3,4)=1
  • f ( 1 , 4 , 2 ) = 1 f(1, 4, 2) = 1f(1,4,2)=1
  • f ( 1 , 4 , 3 ) = 1 f(1, 4, 3) = 1f(1,4,3)=1
  • f ( 2 , 3 , 4 ) = 1 f(2, 3, 4) = 1f(2,3,4)=1
  • f ( 2 , 4 , 3 ) = 1 f(2, 4, 3) = 1f(2,4,3)=1
  • f ( 3 , 4 , 2 ) = 1 f(3, 4, 2) = 1f(3,4,2)=1
【数据范围】

本题采用捆绑测试且开启子任务依赖。

子任务编号分值n ≤ n \len特殊性质子任务依赖
1 118 8850 5050
2 2215 1515400 4004001 11
3 3324 24243000 300030001 , 2 1, 21,2
4 4417 17172 ⋅ 10 5 2 \cdot 10^52105u i = i , v i = i + 1 u_i = i, v_i = i + 1ui=i,vi=i+1
5 5536 36362 ⋅ 10 5 2 \cdot 10^521051 , 2 , 3 , 4 1, 2, 3, 41,2,3,4

对于所有数据,满足2 ≤ n ≤ 2 ⋅ 10 5 2 \le n \le 2 \cdot 10^52n2105,输入的图是一棵树。

C++实现

#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongconstintmod=1e9+7;vector<int>edge[200010];intsz[200010];intn,ans=0;voiddfs(intu,intfa){sz[u]=1;for(autov:edge[u]){if(v==fa)continue;dfs(v,u);sz[u]+=sz[v];}if(u==1)return;intsum=n-sz[u];// 朝“上”子树大小ans+=sum*(sum-1)/2*sz[u]+sz[u]*(sz[u]-1)/2*sum;ans%=mod;}signedmain(){cin>>n;for(inti=1;i<n;i++){intu,v;cin>>u>>v;edge[u].push_back(v);edge[v].push_back(u);}dfs(1,0);cout<<ans;return0;}

后续

接下来我会不断用C++来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容

http://www.jsqmd.com/news/1384522/

相关文章:

  • 2026年8月烟台漏水维修攻略!梅雨季残留潮湿和汛期多雨,房屋修缮解决沉降发霉渗水难题 - 聪居到家
  • 2026年度上海松江高企申报代办口碑企业六家 - 天下观知
  • Windows Defender完全移除终极指南:三步轻松优化系统性能
  • VirtualLab Fusion | 光纤耦合透镜的参数优化
  • 如何轻松掌握Atmosphere:Switch破解系统的完整实践指南
  • 数字化标准的终极目标:通过语义理解实现人机高效协同
  • 本地LLM实现PII智能脱敏:PrivateRedact实践指南
  • 《模拟人生4》NOCC房屋建造指南:从安装到玩转魔法树屋
  • 2026年8月 北京断桥铝门窗店怎么选?无广专业测评探访30余年老品牌厂家直营直售门窗店选购与安装、服务全维度解析科普避坑指南 - 各企业资讯
  • 2026年8月沈阳漏水维修最全解答!梅雨残留受潮、台风渗水、墙体返碱发霉怎么修? - 宅安选房屋修缮
  • 电磁流量计国产替代:质保服务与价格对比指南解析 - 仪表人叶工
  • 2026成都旧房翻新售后保障装修公司盘点:正规合规服务商选型逻辑+选商避坑指南及FAQ - 商业大观
  • 高压喷雾机选购解析:雾境机械技术观察 - 天下观知
  • 深度解析:如何高效解决REFramework在RE2重制版中的启动崩溃问题
  • [springboot笔记三]解释相关创建文件-后端
  • 伯努利分布参数估计实战:极大似然与贝叶斯方法对比
  • 如何在3分钟内解锁极域电子教室控制:JiYuTrainer完整防控制指南
  • 2026常州婚纱礼服实测・无广测评告诉你哪家好 - GrowthUME
  • 供应链思维:从精益生产到数字化管理的五大核心维度
  • 电吉他学习系统指南:从技术基础到音乐表达的完整路径
  • Java核心知识体系构建:从基础语法到JVM实战的完整指南
  • 初高中生毕业可以AI人工智能吗?学校企直通!AI定向培养,毕业优选名企 - 武汉学历升学规划
  • 理解「思考模式」:什么时候该开
  • 2026年广州管道疏通与公共卫生间除臭服务五大推荐:专业解决管道堵塞、异味与公共卫生间运维难题 - 滚动商讯
  • 2026年山东600kw发电机组供应商推荐 山东鸿瑞动力有限公司(山东营销部) - 品牌优推
  • 2026年当下:和田河道边坡治理土工格室哪家好润杰产土工好物,路基防渗都靠谱-润杰工程 - 行业甄选汇
  • 2026年长春透水砖厂家挑选攻略 洪铭建材等优质企业盘点 - 小范同学a
  • 数学建模国赛高效备赛:从信息甄别到论文精修的全流程实战指南
  • 二叉树翻转:递归与迭代实现及应用场景
  • 宇树科技科创板IPO定价21.1美元:拆解机器人公司的技术壁垒与商业估值