Codeforces 472D
看官方题解提供的是最小生成树,怎么也想不明确。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相关推荐
- CodeForces 375D Tree and Queries
传送门:https://codeforces.com/problemset/problem/375/D 题意: 给你一颗有根树,树上每个节点都有其对应的颜色,有m次询问,每次问你以点v为父节点的子树内 ...
- 「日常训练」Bad Luck Island(Codeforces Round 301 Div.2 D)
题意与分析(CodeForces 540D) 是一道概率dp题. 不过我没把它当dp做... 我就是凭着概率的直觉写的,还好这题不算难. 这题的重点在于考虑概率:他们喜相逢的概率是多少?考虑超几何分布 ...
- 【codeforces 812C】Sagheer and Nubian Market
[题目链接]:http://codeforces.com/contest/812/problem/C [题意] 给你n个物品; 你可以选购k个物品;则 每个物品有一个基础价值; 然后还有一个附加价值; ...
- CodeForces 获得数据
针对程序的输出可以看见 CodeForces :当输入.输出超过一定字符,会隐藏内容 所以:分若干个程序进行输入数据的获取 1. 1 for (i=1;i<=q;i++) 2 { 3 scanf ...
- codeforces水题100道 第二十七题 Codeforces Round #172 (Div. 2) A. Word Capitalization (strings)...
题目链接:http://www.codeforces.com/problemset/problem/281/A 题意:将一个英文字母的首字母变成大写,然后输出. C++代码: #include < ...
- CodeForces 595A
题目链接: http://codeforces.com/problemset/problem/595/A 题意: 一栋楼,有n层,每层有m户,每户有2个窗户,问这栋楼还有多少户没有睡觉(只要一个窗户灯 ...
- codeforces A. Jeff and Digits 解题报告
题目链接:http://codeforces.com/problemset/problem/352/A 题目意思:给定一个只有0或5组成的序列,你要重新编排这个序列(当然你可以不取尽这些数字),使得这 ...
- Codeforces Round #506 (Div. 3)
Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...
- Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈)
Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈) 标签: codeforces 2017-06-02 11:41 29人阅读 ...
最新文章
- java swt 画按钮_向表中添加按钮(java swt)
- Mac下安装多版本python
- android ida多线程调试,C/C++知识点之ida动态调试.so 动态加载(必须真机)
- Thread线程类及多线程
- html 文本框数量加减,收藏!js实现input加减
- linux_负载分析之LoadAverage
- nvm、npm、nodejs的关系
- 文件搜索工具终极大PK挑战赛
- Scratch 教程《元宵猜灯谜》
- 网易云音乐android变臃肿,网易云音乐,你变成了我最讨厌的模样
- python爬虫简历项目怎么写_爬虫项目咋写,爬取什么样的数据可以作为项目写在简历上?...
- Visual Studio Community 2017安装步骤(只装C++)
- 如何在CentOS 7上安装Yarn
- 手把手DES加密解密详解-Java,Python
- Error parsing column 33
- 单链表创建以及头插、尾插(二)-(B站)史上最强最细腻的linux嵌入式C语言学习教程【李慧芹老师】
- 免费还能商用的视频素材,拿走不谢。
- s3c2440移植Linux内核,移植Linux-3.4.2内核到S3C2440
- python实现中文数字转为阿拉伯数字
- 【Spark】--SparkCore6