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

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

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

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

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

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

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

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

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<string.h>
#include<math.h>
#include<algorithm>
#include<vector>
#include<queue>
#include<map>
using namespace std;
int n;
long long mp[2005][2005];
map <long long,int> 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"<<endl;return 0;}}for(int i=1;i<=n;i++)m[2*mp[1][i]]=1;for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){if((mp[i][j]==abs(mp[1][i]-mp[1][j])) || m[mp[1][j]+mp[1][i]-mp[i][j]])continue;cout<<"NO"<<endl;return 0;}}cout<<"YES"<<endl;return 0;
}

转载于:https://www.cnblogs.com/jhcelue/p/7010750.html

Codeforces 472D相关推荐

  1. CodeForces 375D Tree and Queries

    传送门:https://codeforces.com/problemset/problem/375/D 题意: 给你一颗有根树,树上每个节点都有其对应的颜色,有m次询问,每次问你以点v为父节点的子树内 ...

  2. 「日常训练」Bad Luck Island(Codeforces Round 301 Div.2 D)

    题意与分析(CodeForces 540D) 是一道概率dp题. 不过我没把它当dp做... 我就是凭着概率的直觉写的,还好这题不算难. 这题的重点在于考虑概率:他们喜相逢的概率是多少?考虑超几何分布 ...

  3. 【codeforces 812C】Sagheer and Nubian Market

    [题目链接]:http://codeforces.com/contest/812/problem/C [题意] 给你n个物品; 你可以选购k个物品;则 每个物品有一个基础价值; 然后还有一个附加价值; ...

  4. CodeForces 获得数据

    针对程序的输出可以看见 CodeForces :当输入.输出超过一定字符,会隐藏内容 所以:分若干个程序进行输入数据的获取 1. 1 for (i=1;i<=q;i++) 2 { 3 scanf ...

  5. codeforces水题100道 第二十七题 Codeforces Round #172 (Div. 2) A. Word Capitalization (strings)...

    题目链接:http://www.codeforces.com/problemset/problem/281/A 题意:将一个英文字母的首字母变成大写,然后输出. C++代码: #include < ...

  6. CodeForces 595A

    题目链接: http://codeforces.com/problemset/problem/595/A 题意: 一栋楼,有n层,每层有m户,每户有2个窗户,问这栋楼还有多少户没有睡觉(只要一个窗户灯 ...

  7. codeforces A. Jeff and Digits 解题报告

    题目链接:http://codeforces.com/problemset/problem/352/A 题目意思:给定一个只有0或5组成的序列,你要重新编排这个序列(当然你可以不取尽这些数字),使得这 ...

  8. Codeforces Round #506 (Div. 3)

    Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...

  9. Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈)

    Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈) 标签: codeforces 2017-06-02 11:41 29人阅读 ...

最新文章

  1. java swt 画按钮_向表中添加按钮(java swt)
  2. Mac下安装多版本python
  3. android ida多线程调试,C/C++知识点之ida动态调试.so 动态加载(必须真机)
  4. Thread线程类及多线程
  5. html 文本框数量加减,收藏!js实现input加减
  6. linux_负载分析之LoadAverage
  7. nvm、npm、nodejs的关系
  8. 文件搜索工具终极大PK挑战赛
  9. Scratch 教程《元宵猜灯谜》
  10. 网易云音乐android变臃肿,网易云音乐,你变成了我最讨厌的模样
  11. python爬虫简历项目怎么写_爬虫项目咋写,爬取什么样的数据可以作为项目写在简历上?...
  12. Visual Studio Community 2017安装步骤(只装C++)
  13. 如何在CentOS 7上安装Yarn
  14. 手把手DES加密解密详解-Java,Python
  15. Error parsing column 33
  16. 单链表创建以及头插、尾插(二)-(B站)史上最强最细腻的linux嵌入式C语言学习教程【李慧芹老师】
  17. 免费还能商用的视频素材,拿走不谢。
  18. s3c2440移植Linux内核,移植Linux-3.4.2内核到S3C2440
  19. python实现中文数字转为阿拉伯数字
  20. 【Spark】--SparkCore6

热门文章

  1. 带超时的system
  2. ES6基础5(Promise)-学习笔记
  3. 《剑指offer》二维数组中的查找
  4. 在控制台中录入一个字符串 , 打印这个字符串中的字符以及出现的次数(Python)
  5. fastjson Features 说明
  6. 网络协议-网络分层、TCP/UDP、TCP三次握手和四次挥手
  7. Amcharts插件实现3D饼图
  8. 025 资源的隔离与配置
  9. 排序 - 冒泡法(改进)
  10. 《开源思索集》一如何更有效地学习开源项目的代码?