睡醒后我第一眼:这不主席树裸题吗?

先统计dfs序,把树上问题转化为区间问题

区间大于等于某个数的个数。。。主席树模板?

#include<bits/stdc++.h>
#define re register
#define inc(i,j,k) for(re int i=j;i<=k;++i)
#define dec(i,j,k) for(re int i=j;i>=k;--i)
#define ra(i,u) for(re int i=head[u];i;i=e[i].nxt)
using namespace std;
const int maxn=200010;
inline int read()
{
re 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*10+(ch^48); ch=getchar();}
return x*f;
}
int L[maxn*20],R[maxn*20],sum[maxn*20];
int T[maxn],b[maxn],a[maxn],size[maxn],dfn[maxn<<1],head[maxn];
int n,m,tot,num,tim,cnt;
struct node
{
int to,nxt;
}e[maxn<<1];
inline void add(int u,int v)
{
e[++cnt].to=v;
e[cnt].nxt=head[u];
head[u]=cnt;
}
inline int update(int pre,int l,int r,int v)
{
re int p=++tot;
L[p]=L[pre]; R[p]=R[pre];
sum[p]=sum[pre]+1;
if(l==r) return p;
re int mid=(l+r)>>1;
if(v<=mid) L[p]=update(L[pre],l,mid,v);
else R[p]=update(R[pre],mid+1,r,v);
return p;
}
inline int query(int p,int pre,int l,int r,int x,int y)
{
if(x<=l && r<=y) return sum[p]-sum[pre];
re int mid=(l+r)>>1;
re int res=0;
if(x<=mid) res+=query(L[p],L[pre],l,mid,x,y);
if(y>mid) res+=query(R[p],R[pre],mid+1,r,x,y);
return res;
}
inline void dfs(int u,int fa)
{
size[u]=1;
dfn[u]=++tim;
T[tim]=update(T[tim-1],0,num+1,a[u]);
ra(i,u)
{
re int v=e[i].to;
if(v==fa) continue;
dfs(v,u);
size[u]+=size[v];
}
}
int main()
{
// freopen("123.in","r",stdin);
re int xx,yy;
n=read();
inc(i,2,n)
{
xx=read();
add(xx,i);
}
inc(i,1,n) a[i]=read(),b[i]=a[i];
sort(b+1,b+n+1);
num=unique(b+1,b+n+1)-b-1;
inc(i,1,n)
{
a[i]=lower_bound(b+1,b+num+1,a[i])-b;
}
dfs(1,0);
inc(i,1,n)
{
xx=T[dfn[i]]; yy=T[dfn[i]+size[i]-1];
// cout<<xx<<" "<<yy<<endl;
printf("%d %d %d\n",query(yy,xx,0,num+1,0,a[i]-1),query(yy,xx,0,num+1,a[i],a[i]),query(yy,xx,0,num+1,a[i]+1,num+1));
}
}

小(大)插曲

考完试。

老师:诶要不hxx你来讲讲这套题吧,你为啥答得这么快啊

hxx(这是位初四的可爱弟弟):因为这套题太水了,我本来看我迟到了以为答不完了,结果还好在一个多小时写完了。。。

完。

(Orz hxx JULAO

HeRaNO's NOIP CSP Round Day 2 T3 ginkgo的更多相关文章

  1. HeRaNO's NOIP CSP Round Day 2 T2 PESTC

    对于我这种菜鸡来说还是挺有迷惑性的. 在考场发现答案问的是跟最值有关的数量,想到二分,结果果然具有单调性,考虑二份答案+验证 其实什么反转什么的,可以不用去管他,对于长度小于二分答案mid的道路,不去 ...

  2. HeRaNO's NOIP CSP Round Day 2 T1 building

    考试的时候居然睡着了... T1的60分做法很明显,3^n枚举每个状态并进行验证 (考试剩十分钟结束的时候我开始打,,不到五分钟就写完了? 暴力(60分) #include<bits/stdc+ ...

  3. NOIP模拟测试18(T3待更新)

    T1: 直接模拟,详见代码注释. 复杂度$O(NM)$. Code: #include<iostream> #include<cstdio> #include<vecto ...

  4. NOIP&CSP PJ 难度刷题记录

    前言 本来不想写前言的(>人<:) 这只是 mjl 给我们布置的作业,并不是我自己在刷题! 不保证所有代码的正确性,它们仅仅是通过了所有数据点而已. 1.模拟板块 整体难度:红~黄(模拟不 ...

  5. NOIP模拟赛(by hzwer) T3 小奇回地球

    [题目背景] 开学了,小奇在回地球的路上,遇到了一个棘手的问题. [问题描述] 简单来说,它要从标号为 1 的星球到标号为 n 的星球,某一些星球之间有航线. 由于超时空隧道的存在,从一个星球到另一个 ...

  6. 括号树 noip(csp??) 2019 洛谷 P5658

    洛谷AC通道 本题,题目长,但是实际想起来十分简单. 首先,对于树上的每一个后括号,我们很容易知道,他的贡献值等于上一个后括号的贡献值 + 1.(当然,前提是要有人跟他匹配,毕竟题目中要求了,是不同的 ...

  7. NOIP&CSP 考前 Dev-cpp 的选项问题和考试心态

    (进入考场后您将获得一个崭新的 \(Dev-cpp\),没有中文,没有编译选项,没有缺省源:我还将获得一个崭新的脑子,没有心态,没有智商,没有调试能力--) 中文 \[Step1 \] \[Step2 ...

  8. [Noip 2018][标题统计 龙湖斗 摆渡车 对称二叉树]普及组题解

    啊喂,都已经9102年了,你还在想去年? 这里是一个Noip2018年PJ第二题打爆的OIer,错失省一 但经过了一年,我学到了很多,也有了很多朋友,水平也提高了很多,现在回看当时: 今年的Noip ...

  9. [OI]Noip 2018总结(普及)

    考砸了,还有原谅我代码十分有限的可读性. 一个人的真正伟大之处就在于他能够认识到自己的渺小.——保罗 从一年前初一九月到现在18年10月接触OI已经有一年了.几次模拟赛也自我感觉良好,都过了一等的线, ...

随机推荐

  1. XGBoost使用教程(纯xgboost方法)一

    一.导入必要的工具包# 导入必要的工具包import xgboost as xgb # 计算分类正确率from sklearn.metrics import accuracy_score二.数据读取X ...

  2. 目标检测论文解读9——R-FCN

    背景 基于ResNet 101的Faster RCNN速度很慢,本文通过提出Position-sensitive score maps(位置敏感分值图)来给模型加速. 方法 首先分析一下,为什么基于R ...

  3. idea下新建Spring Boot项目并配置启动

    一.操作步骤 ①使用idea新建一个Spring Boot项目 ②修改pom.xml ③修改application.properties ④修改编写一个Hello Spring Boot的Contro ...

  4. destoon开发笔记-调取资讯标题图

    今天刚申请博客园的博客,申请速度挺快的.之前我的文章都是发在自己搭建的博客网站,但是是香港服务器,不想续费了,所以就关闭了.之前的数据也没有了,挺可惜了.不过既然加入博客园的大家庭,我就在这每天记录工 ...

  5. php提示Undefined index的解决方法

    我们在做php开发时有时可能会提示Notice: Undefined index: *** on line 249,出现上面这些是 PHP 的提示而非报错,PHP 本身不需要事先声明变量即可直接使用, ...

  6. ajax jQ写的上传进度条

    XML/HTML Code <form id="myForm" action="upload.php" method="post" e ...

  7. HDU2650 A math problem——高斯素数

    题意 给你一个数 $a+bj, \ j=\sqrt {-2}$,如果它只能被1.-1.本身和本身的相反数整除,则输出Yes,否则输出No. 分析 高斯整数 $a+bi$ 是素数当且仅当: (1)$a, ...

  8. 使用golang写一个redis-cli

    使用golang写一个redis-cli 0. redis通信协议 redis的客户端(redis-cli)和服务端(redis-server)的通信是建立在tcp连接之上, 两者之间数据传输的编码解 ...

  9. memcpy和strcpy的区别

    strcpy和memcpy主要有以下3方面的区别. 复制的内容不同.strcpy只能复制字符串,而memcpy可以复制任意内容,例如字符数组.整型.结构体.类等. 复制的方法不同.strcpy不需要指 ...

  10. flex布局整理以及demo

    flex: 概念: flex容器: display:flex flex项: 轴:水平的主轴.垂直的交叉轴 容器的属性: 1. flex-direction(决定主轴的方向.即项目的排列方向) 1.1 ...