题号 NC13886
Shortest Path
西南交通大学第十三届ACM决赛
题意:
一棵偶数节点的树,分成n/2对,两两一组,所有组的路径之和最小是多少?
题解:
如果两个点之间相连将另外两个相连的点覆盖,那么完全可以改变相连方式

改变后路径更小,也就是说两两一组的点都不会覆盖其他点
那么每个点与其他点配对就有两者选择,一个与兄弟节点配对(中间跨过父亲点),另一个就是与父亲节点相连,这样选择肯定是最优的
如果这个节点所在的自树里有偶数个节点,那么他们内部配对就可以了(好像有什么怪怪的)
如果有奇数个节点,还有把父亲节点拉进来一起配对(这样才能组成偶数个)
来上代码:


#include<bits/stdc++.h>
using namespace std;
const int maxx=1e4+5;
typedef long long ll;
int head[maxx];
int cnt=0;
ll x,y,z;
ll ans;
struct node
{ll w,v,u,next;
}edge[maxx*2];
void addt(int u,int v,int w)
{edge[++cnt].u=u;edge[cnt].v=v;edge[cnt].w=w;edge[cnt].next=head[u];head[u]=cnt;}
ll dfs(ll u,ll f,ll w)
{ll sum=1;for(int i=head[u];i;i=edge[i].next){if(edge[i].v!=f)sum+=dfs(edge[i].v,u,edge[i].w);}if(sum%2)ans+=w;return sum;
}
int main()
{int T;int n;scanf("%d",&T);for(int i=1;i<=T;i++){cin>>n;memset(head,0,sizeof(head));cnt=0;ans=0;for(int i=1;i<n;i++){scanf("%lld%lld%lld",&x,&y,&z);addt(x,y,z);addt(y,x,z); }dfs(1,0,0);printf("%d\n",ans);}return 0;
}
//树上dfs

牛客网【每日一题】Shortest Path 4月3日题目精讲 DFS相关推荐

  1. 牛客网刷编程题 2020年05月27日

    1.时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32M,其他语言64M 算法知识视频讲解 计算字符串最后一个单词的长度,单词以空格隔开. 输入描述: 一行字符串,非空,长度小于500 ...

  2. 【每日一题】8月28日题目精讲 编号

    [每日一题]8月28日题目精讲 编号 链接:https://ac.nowcoder.com/acm/problem/19925 来源:牛客网 题目描述 你需要给一批商品编号,其中每个编号都是一个7位1 ...

  3. 【每日一题】7月17日题目精讲—BOWL 碗的叠放

    [每日一题]7月17日题目精讲-BOWL 碗的叠放 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld ...

  4. 【每日一题】7月15日题目精讲—生日快乐

    [每日一题]7月15日题目精讲-生日快乐 [SCOI2009]生日快乐 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO For ...

  5. 【每日一题】7月13日题目精讲—Kingdom

    [每日一题]7月13日题目精讲-Kingdom 文章目录 题目描述 题解: 代码: 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 1048576K,其他语言2097152K 64bi ...

  6. 牛客网【每日一题】7月30日题目精讲—Xor Path

    来源:牛客网: Xor Path 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 给定一棵 ...

  7. 牛客网【每日一题】4月14日题目精讲 Xorto

    文章目录 题目描述 题解: 代码: 扩展 传送 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format:%lld 题目描述 ...

  8. 牛客网 每日一题 7月23日题目精讲—wpy的请求

    来源:牛客网: 文章目录 wpy的请求 题解: 代码: wpy的请求 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K Special Judge ...

  9. 牛客网 【每日一题】8月5日题目精讲—蓝魔法师

    来源:牛客网: 文章目录 题目描述 题解: 代码: 题目描述 "你,你认错人了.我真的,真的不是食人魔."–蓝魔法师 给出一棵树,求有多少种删边方案,使得删后的图每个连通块大小小于 ...

最新文章

  1. .net thread操作串口_听说你不知道 RT-Thread 有个 ringbuffer
  2. [翻译]敏捷软件开发 一 之简要介绍
  3. 从《王者荣耀》谈游戏的帧同步
  4. 在小范围内[打表]验证哥德巴赫猜想(洛谷P1579题题解,Java语言描述)
  5. 讨论一个比较有意思的业务需求
  6. ticketea如何从一体化转向多体化架构
  7. 《C++ Primer Plus》第15章 友元、异常和其他 学习笔记
  8. 自动驾驶-MPC控制器
  9. c语言期末考试题库大题及详解答案,C语言期末复习题答案.doc
  10. cmd复制文件到其他目录
  11. 低压差线性稳压电源(LDO)原理、参数及应用
  12. 智能名片小程序名片详情页功能实现关键代码
  13. SSH/TSL 加密原理
  14. 苹果系统中国日历服务器,简单三步,让 iPhone 自带日历 App 显示国家节假日安排...
  15. 如何恢复删除掉的压缩文件
  16. iphone 小代码总结
  17. css隐藏浏览器的x/y轴
  18. 你只管善良,剩下交给时间
  19. Cannot find any credentials with id 283d811e-7a65-4977-b560-9c66555e19d6
  20. 如何快速查看MCC竞价账户下子账户的剩余预算金额?

热门文章

  1. 数模国赛要点与注意事项全分享!
  2. 资料分享 | python机器学习教程分享来袭
  3. python实例编程_python 编程实例 5
  4. 掌握JVM 运行时数据区,其实不是很难,加薪也是要技巧可言的!!!
  5. xps13安装linux系统,[操作系统]Dell XPS 13 (9360)安装配置 ubuntu 16.04 实现 win10 Linux双系统...
  6. mac 启动mysql多实例_实践:mysql单机多实例部署(mac)
  7. python tablewidget 颜色_QT中,QTableView鼠标移动到item上时该item所在行的背景颜色变成其他颜色,这要怎么实现...
  8. maya的颤动怎么做_必看!新手学习MAYA的几个建议
  9. 7-22 堆栈模拟队列 (25 分)(详解夹思路)
  10. [SpringSecurity]web权限方案_用户授权_基于权限访问控制_基于角色访问控制_hasAuthority和hasAnyAuthority_hasRole和hasAnyRole