博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces 472D
阅读量:7108 次
发布时间:2019-06-28

本文共 718 字,大约阅读时间需要 2 分钟。

看官方题解提供的是最小生成树,怎么也想不明确。you can guess and prove it!

看了好几个人的代码。感觉实现思路全都不一样,不得不佩服cf题目想法的多样性

以下说说我自己的理解,将1作为根,对于随意两点存在两种关系:

1.一个点位于还有一个点的子树上。两点到1的距离之差绝对值等于两点距离。

2.两个点在某一个点的不同子树上。两点到1距离之和减去两点距离等于两倍某个点到1的距离。

这样不须要管父节点是哪一个,仅仅要保证存在即可了。

推断这两种情况就能够了。

当然在開始的时候要注意一些特殊情况的推断,预处理一下。

#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;int n;long long mp[2005][2005];map
m;int main(){ int n; cin>>n; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) scanf("%I64d",&mp[i][j]); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) { if((i==j && mp[i][j]) || (i!=j && mp[i][j]==0) || mp[i][j]!=mp[j][i]) { cout<<"NO"<

转载地址:http://solhl.baihongyu.com/

你可能感兴趣的文章
[Android Pro] static 和 Volatile 的区别
查看>>
深入理解PHP内核(八)变量及数据类型-预定义变量
查看>>
linker command failed with exit code 1 (use -v to see invocation)
查看>>
播放后台音频
查看>>
多线程 这一篇仔细看
查看>>
Nokia 920板砖自救(理论上通用,升级Win10成板砖也可以用这个恢复)
查看>>
Anroid搭建一个局域网Web服务器
查看>>
kettle删除资源库中的转换或者作业
查看>>
java的重写规则
查看>>
Base64编码原理与应用
查看>>
物联网产业链八大环节全景图
查看>>
spark dataframe操作集锦(提取前几行,合并,入库等)
查看>>
阿里巴巴
查看>>
伺服电机的调试步骤有哪些
查看>>
shell中的四种模式匹配
查看>>
(转)Making 1 million requests with python-aiohttp
查看>>
Web应用扫描工具Wapiti
查看>>
hadoop-17-hive数据库元数据查看
查看>>
Bind-DLZ with MySQL
查看>>
Google 地图切片URL地址解析
查看>>