1. Job Roadmap
  2. Home
  3. Problem Set
  4. codenotelist
  5. Forum
  6. course
  7. Shore Share Sessions
  8. Record
  1. Login
  2. Sign Up
  3. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
    ZhContent TextSol AI分析

解题思路

设任选一个点作为根,记从根到点 uuu 的路径边权异或和为 pre[u]pre[u]pre[u]。

那么树上两点 u,vu,vu,v 之间路径的异或和有一个经典结论:

xor(u,v)=pre[u]⊕pre[v]xor(u,v)=pre[u]\oplus pre[v] xor(u,v)=pre[u]⊕pre[v]

P4602.第3题-树上异或路径

    1000ms Tried: 28 Accepted: 10 Difficulty: 7 所属公司 : 米哈游
    算法与标签>位运算

题目内容

给你一棵有 nnn 个节点的无向树。每条边有一个非负整数权值 www。请计算这棵树上所有简单路径的异或和之和。注意,本题中树为无向图,端点 (u,v)(u,v)(u,v) 与 (v,u)(v,u)(v,u) 视为同一路径,仅统计一次。

说明:路径指的是在树上选择两个节点作为端点的简单路径。当两个端点相同的时候,路径长度为 000 ,其异或和为 000 。

【名词解释】

按位异或 (BitwiseXOR)(BitwiseXOR)(BitwiseXOR):对两个整数的二进制表示按位进行异或运算。

输入描述

每个测试文件均包含多组测试数据。第一行输入一个整数 T(1≤T≤2×105)T(1≤T≤2×10^5)T(1≤T≤2×105) 表示数据组数。除此之外,保证单个测试文件的 nnn 之和不超过 5×1055×10^55×105 。每组测试数据的格式如下:

第一行输入一个整数 n(1≤n≤2×105)n(1≤n≤2×10^5)n(1≤n≤2×105) ,表示节点数量;

此后 n−1n-1n−1 行,每行输入三个整数 u,v,w(1≤u,v≤n;0≤w≤109)u,v,w(1≤u,v≤n;0≤w≤10^9)u,v,w(1≤u,v≤n;0≤w≤109) 表示一条连接 uuu 与 vvv 的边及其权值。保证给出的是一棵树。

输出描述

对于每一组测试数据,新起一行输出一个整数,表示所有简单路径的异或和之和。若结果可能很大,请将答案对 109+710^9+7109+7 取模后输出。

样例1

输入

2
3
1 2 1
2 3 2
4
1 2 0
2 3 0
3 4 7

输出

6
21

说明

对于第一组:

  • 树为 1−2−31-2-31−2−3,边权分别为 1,21,21,2 ;

  • 所有端点对为 {(1,2),(1,3),(2,3)(1,2),(1,3),(2,3)(1,2),(1,3),(2,3)},对应路径异或和依次为 1,3,21,3,21,3,2 ;

  • 求和得到 1+3+2=61+3+2=61+3+2=6 。

登录后即可使用 AI 分析。

模式
倒计时时长
:

最长 10 小时 59 分;应用后按此时长重新开始。

提示:点击提交记录在左侧题面区域查看详情
题库
AI分析设置
留空使用官方API Key,每天有次数限制(自定义API Key仅限会员和管理员使用,不限次数)
会员和管理员可切换模型;切到 Kimi/智谱/通义/豆包时需填写对应供应商 API Key
升级会员,可将运行与提交冷却时间缩短至 1 秒起

Status

  • Judging Queue
  • Service Status

Development

  • Open Source

Support

  • Help
  • Contact Us

About

  • About
  • Privacy
  • Terms of Service
  • Copyright Complaint
  1. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
  2. Legacy mode
  3. Theme
    1. Light
    2. Dark
  1. 京ICP备2025123107号-1
  2. Worker 0, 34ms
  3. Powered by Hydro v5.0.0-beta.18 Community
CLOSE


ScanQRCodePrompt

请使用微信扫描下方二维码完成注册

Forgot password or username?