【题目链接】:http://codeforces.com/contest/797/problem/D

【题意】



给你一个二叉树;

然后问你,对于二叉树中每个节点的权值;

如果尝试用BST的方法去找;

能不能找到这样一个权值的节点;

(只要找到这个权值的节点就好,没有说特定找哪一个)

【题解】



对于二叉树中的每一个节点,我们都能确定;

可以到达这个节点的权值的范围;

对于节点不在这个权值范围内的点;

答案递增;

但有可能会有

3

2 -1 -1

1 1 3

2 -1 -1

这样的数据

这里的答案应该是0而不是1;

因为2是能够通过bst的方法找到的;

虽然找左儿子的时候返回的是右儿子的;但是找到了!

所以最后如果有某些权值在某一些地方找不到,但是在另外一些地方找到了则也是可以的.



【Number Of WA】



2



【完整代码】

#include <bits/stdc++.h>
using namespace std;
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define LL long long
#define rep1(i,a,b) for (int i = a;i <= b;i++)
#define rep2(i,a,b) for (int i = a;i >= b;i--)
#define mp make_pair
#define pb push_back
#define fi first
#define se second
#define ms(x,y) memset(x,y,sizeof x) typedef pair<int,int> pii;
typedef pair<LL,LL> pll; const int dx[9] = {0,1,-1,0,0,-1,-1,1,1};
const int dy[9] = {0,0,0,-1,1,-1,1,-1,1};
const double pi = acos(-1.0);
const int N = 1e5+100;
const int INF = 1e9+1000; int n,a[N],l[N],r[N],bo[N],root,ans;
int siz[N];
map <int,int> dic1,dic2; void dfs2(int x,int fa,int mi,int ma)
{
if (mi<=a[x]&&a[x]<=ma)
{
dic1[a[x]] = 1;
}
else
{
ans++;
dic2[a[x]]++;
}
if (l[x]!=-1) dfs2(l[x],x,mi,min(ma,a[x]));
if (r[x]!=-1) dfs2(r[x],x,max(mi,a[x]),ma);
} int main()
{
//freopen("F:\\rush.txt","r",stdin);
ios::sync_with_stdio(false),cin.tie(0);
cin >> n;
rep1(i,1,n)
{
cin >> a[i] >> l[i] >> r[i];
if (l[i]!=-1) bo[l[i]] = true;
if (r[i]!=-1) bo[r[i]] = true;
}
rep1(i,1,n)
if (!bo[i])
root = i;
dfs2(root,0,-INF,INF);
rep1(i,1,n)
if (dic1[a[i]] && dic2[a[i]]>0)
{
dic1[a[i]]=0;
ans-=dic2[a[i]];
}
cout << ans << endl;
return 0;
}

【codeforces 797D】Broken BST的更多相关文章

  1. 【26.34%】【codeforces 722A】Broken Clock

    time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...

  2. 【codeforces 415D】Mashmokh and ACM(普通dp)

    [codeforces 415D]Mashmokh and ACM 题意:美丽数列定义:对于数列中的每一个i都满足:arr[i+1]%arr[i]==0 输入n,k(1<=n,k<=200 ...

  3. Codeforces 797 D. Broken BST

    D. Broken BST http://codeforces.com/problemset/problem/797/D time limit per test 1 second memory lim ...

  4. 【codeforces 707E】Garlands

    [题目链接]:http://codeforces.com/contest/707/problem/E [题意] 给你一个n*m的方阵; 里面有k个联通块; 这k个联通块,每个连通块里面都是灯; 给你q ...

  5. 【codeforces 707C】Pythagorean Triples

    [题目链接]:http://codeforces.com/contest/707/problem/C [题意] 给你一个数字n; 问你这个数字是不是某个三角形的一条边; 如果是让你输出另外两条边的大小 ...

  6. 【codeforces 709D】Recover the String

    [题目链接]:http://codeforces.com/problemset/problem/709/D [题意] 给你一个序列; 给出01子列和10子列和00子列以及11子列的个数; 然后让你输出 ...

  7. 【codeforces 709B】Checkpoints

    [题目链接]:http://codeforces.com/contest/709/problem/B [题意] 让你从起点开始走过n-1个点(至少n-1个) 问你最少走多远; [题解] 肯定不多走啊; ...

  8. 【codeforces 709C】Letters Cyclic Shift

    [题目链接]:http://codeforces.com/contest/709/problem/C [题意] 让你改变一个字符串的子集(连续的一段); ->这一段的每个字符的字母都变成之前的一 ...

  9. 【Codeforces 429D】 Tricky Function

    [题目链接] http://codeforces.com/problemset/problem/429/D [算法] 令Si = A1 + A2 + ... + Ai(A的前缀和) 则g(i,j) = ...

随机推荐

  1. ios单元測试之GHUnit

    1.相同创建一个測试的project, 2.通过cocoaPod来下载GHUnit框架,或者到github上下载.由于这个框架是开源的第三方框架. 同一时候加入QuartCore.framework( ...

  2. MySQL基础教程-绝对推荐

    https://wenku.baidu.com/view/1acfe579ee06eff9aef80752.html?from=search MySQL--公司培训PPT Mysql体系结构以及与Or ...

  3. bzoj5038 四叶草魔杖

    很有意思的最小生成树啊. 网上的题解大多是状压+最小生成树,经过我的试验,其实只要把每个联通块找出来,一个个做一次就可以了. 放一个状压的.懒得再写一个搜索找联通块 #include<cstdi ...

  4. golang import all 类似python import * 效果

    import "io/ioutil" func main() { content, err = iotuil.ReadFile("somefile.txt") ...

  5. 【BZOJ 2565】 最长双回文串

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2565 [算法] Manacher [代码] #include<bits/std ...

  6. XHprof 使用 (转)

    原文地址:http://blog.csdn.net/maitiandaozi/article/details/8896293 XHProf是facebook开源出来的一个php轻量级的性能分析工具,跟 ...

  7. PCB Genesis加邮票孔(线与线)实现算法

    一.Genesis加邮票孔(线与线)实现算法 1.鼠标点击位置P点, 2.通过P点求出,垂足2个点:P1C与P2C (两个点即距离2条线段垂直的垂足点) 3.计算P1C到P2C方位角(假设置为变量PA ...

  8. layui富文本编译器后台获取图片路径

    @RequestMapping("add")    public ModelAndView add(News news){        ModelAndView mav = ne ...

  9. Laravel5.1学习笔记6 响应

    基本响应 附加头信息到响应 附加Cookie到响应 其他响应 View视图响应 JSON响应 File下载 重定向 重定向到命名路由 重定向到控制器Action 附带闪回Session数据重定向 响应 ...

  10. Entity Framework Code First -- 延迟加载和预先加载

    还是以这两个表为例子 country包含零个或多个city, 这个外键关系是我后来加上去,原来没有. 然后再用Power Tool逆向, 产生如下代码 1: using System.Componen ...