P1268 树的重量
传送门
考虑一个节点一个节点加入树中,每次计算一下对答案的贡献
只有两个点时树的形态是唯一确定的
三个点时第三个点应该是从边上分叉出来的
那么增加的长度显然为 (dis_bc+dis_ac-dis_ab)/2
第四个点也应该是分叉出来的
但是是从哪分叉的我们还要讨论一下
可以发现,唯一合法的情况当且仅当增加的长度最小
因为如果增加的长度大于最小的增长长度,那么必定会有某些约束条件被破坏
这个自己画图一下就可以发现的
所以每次加点时必须找增加长度最小的方案
然后就可以暴力枚举了
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> using namespace std; inline int read() {int x=0,f=1; char ch=getchar();while(ch<'0'||ch>'9') { if(ch=='-') f=-1; ch=getchar(); }while(ch>='0'&&ch<='9') { x=(x<<1)+(x<<3)+(ch^48); ch=getchar(); }return x*f; } const int N=57,INF=1e9+7; int n,ans; int mp[N][N]; int main() {n=read();while(n){for(int i=1;i<=n;i++)for(int j=i+1;j<=n;j++) mp[i][j]=mp[j][i]=read();ans=0;for(int k=2;k<=n;k++){int mi=INF;for(int i=1;i<k;i++)for(int j=1;j<k;j++) mi=min(mi,(mp[i][k]+mp[j][k]-mp[i][j])>>1);//枚举最小的方案ans+=mi;//加入答案 }printf("%d\n",ans);n=read();}return 0; }
转载于:https://www.cnblogs.com/LLTYYC/p/9864595.html
P1268 树的重量相关推荐
- 洛谷—— P1268 树的重量
P1268 树的重量 构造类题目,看不出个所以然来... emmm,只好看题解: 只有两个点,那一条路径就是$ans$ 考虑三个点,那么$3$这个点相对于树上的路径(已经加入树上的边的距离) 为:$( ...
- [洛谷P1268]树的重量
原题传送门 方法一 这道题是贪心.主要的难点在于合并路径压缩长度的策略.这里采用的方法是让一个个结点并入已经构建好的树中,并记录该结点接入树的位置.接入树到该结点的长度.模拟注意细节即可. 1 #in ...
- LuoguP1268树的重量【构造/思维】By cellur925
题目传送门 Description 给你一个矩阵$M$,$M(i,j)$表示$i$到$j$的最短距离.定义树的重量为树上各边权之和,对于任意给出的合法矩阵$M$,已知它所能表示树的重量是唯一确定的.给 ...
- 洛谷1268树的重量(树)
题目描述 树可以用来表示物种之间的进化关系.一棵"进化树"是一个带边权的树,其叶节点表示一个物种,两个叶节点之间的距离表示两个物种的差异.现在,一个重要的问题是,根据物种之间的距离 ...
- noip2017考前整理(未完)
快考试了,把我以前写过的题回顾一下. Noip2007 树网的核:floyd,推出性质,暴力. Noip2008 笨小猴:模拟 Noip2008 火柴棒等式:枚举 Noip2008 传纸条:棋盘dp ...
- 【做题记录】图论杂题
P1268 树的重量 $\texttt{solution}$ 算法:(贪心)\(+\) 找规律 当 \(n=2\) 时,显然答案就是 \(dis(1,2)\) . 当 \(n=3\) 时,答案: \[ ...
- 2019.2-2019.3 TO-DO LIST
DP P2723 丑数 Humble Numbers(完成时间:2019.3.1) P2725 邮票 Stamps(完成时间:2019.3.1) P1021 邮票面值设计(完成时间:2019.3.1) ...
- 51nod1307(暴力树剖/二分dfs/并查集)
题目链接: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1307 题意: 中文题诶~ 思路: 解法1:暴力树剖 用一个数 ...
- 【替罪羊树及其应用】替罪羊树总结
update:退役后对这篇文章进行了一些更新,主要增加了一个后缀平衡树的版块.很遗憾的,csp的350给我的OI生涯画上了句号.记得联赛前大概写了10遍平衡树模板,遗憾没有用上.不过代码经过联赛前反复 ...
- 数据结构(十六)——左高树(含合并过程详细图解)
文章目录 前言 左高树 什么是左高树? 为什么要使用左高树? 最大左高树实现及复杂度分析 节点类和最大左高树类 合并方法 插入(push).删除(pop) 初始化 左高树合并图解 前言 看到左高树的时 ...
最新文章
- 人工智能十年回顾:CNN、AlphaGo、GAN……它们曾这样改变世界
- 计算机系统存数及取数方式,计算机系统结构总结2
- For循环中不可以嵌套RDD操作
- 京东商城pop开放平台产品经理
- VMware vSphere 5.1 vCenter安装
- 【转】kubernetes 中 deployment 支持哪些键值
- 浏览器中调用Linux程序,一个可以使用浏览器通过ssh连接linux的程序
- 消除“星期一综合症”--- 大前研一的周末时间分配术
- 网络摄像视频方案整理
- matlab基础学习——基础数学函数(持续更新)
- 【NLP技术】:NLP简单介绍
- bilibili 2021 技术对抗赛 算法与安全答题 答案
- HTML5+CSS大作业——个人博客-功能齐全(48页) html大学生网站开发实践作业
- 无法将为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型
- 如何将WIN10自带浏览器Microsoft Edge中的书签导出
- [hihoCoder] 区域周长 解题报告
- 简述一个html文档应包含几个基本标记,简述HTML文件的基本标记组成
- SUST Weekly Final Round One 参考题解
- html 悬浮菜单按钮,HTML右侧悬浮菜单
- 《关键对话》如何高效沟通,营造无往不利的事业和人生?