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

先统计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. 数据结构 - 二叉搜索树封装 C++

    二叉搜索树封装代码 #pragma once #include <iostream> using namespace std; template<class T>class T ...

  2. JMeter基础【第二篇】JMeter5.1介绍及脚本录制

    测试计划:被测项目 线程组:测试场景 取样器:被测接口 添加HTTP代理服务器和线程组,默认端口是8888 排除模式可以设置过滤 启动 点击[OK] IE浏览器设置代理 IE浏览器访问百度首页,搜索“ ...

  3. opencart 3伪静态seo url设置教程

    opencart 3已经为我们做好了url伪静态功能,我们只要做一些简单的设置就能实现seo url,首先开启伪静态功能,看看文件.htaccess事发后有存在如下规则,如果没有需要先添加下面的代码 ...

  4. ajax中什么时候进success和error

    先简单介绍下ajax: 简单的说Ajax请求通过XMLHttpRequest对象发送请求,该对象有四个状态(readyState): -未初始化.-正在初始化.-发送数据.-正在发送数据.-完成. 当 ...

  5. 排序算法-插入排序(Java)

    package com.rao.linkList; import java.util.Arrays; /** * @author Srao * @className InsertSort * @dat ...

  6. Invalid connection string format, a valid format is: "host:port:sid"

    报错信息: Caused by: java.sql.SQLException: Io 异常: Invalid connection string format, a valid format is:  ...

  7. Vue模板语法(二)

    Vue模板语法(二) 样式绑定  class绑定 使用方式:v-bind:class="expression" expression的类型:字符串.数组.对象 1.2 style绑 ...

  8. [PHP] Laravel使用redis保存SESSION

    Laravel使用redis保存SESSION 首先确认服务器已经安装redis服务,php安装了redis扩展. 1.打开config/database.php.在redis配置项中增加sessio ...

  9. netlify搭建静态站+https

    转载[大雄的学习人生 - 原文地址:https://www.cnblogs.com/codernie/p/9062104.html] 一.使用github或者gitlab登陆netlify 首先,打开 ...

  10. 基于web公交查询系统自我安排进度

    这周完成站点信息管理