题面:https://nanti.jisuanke.com/t/20690

用后序遍历可得到一个序列,问题就转为在(最左子节点...其他节点...根)这个区间中寻找比根小的节点树,再通过树状数组从小到大的顺序依次加入节点,维护区间和。

#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<string>
#include<algorithm>
#include<iostream>
#include<queue>
#include<map>
#include<cmath>
#include<set>
#include<stack>
#define ll long long
#define pb push_back
#define max(x,y) ((x)>(y)?(x):(y))
#define min(x,y) ((x)>(y)?(y):(x))
#define cls(name,x) memset(name,x,sizeof(name))
#define fs first
#define sc second
#define mp make_pair
#define L(x) (1<<x)
#define next Next
#define index Index
using namespace std;
const int inf=1e9+10;
const ll llinf=1e17+10;
const int maxn=1e5+10;
const int maxm=25e2+10;
const int mod=1e9+7;
int n,p;
int index;
int key[maxn];
vector<int> V[maxn];
int range[maxn];
int tree[maxn];
int dfs(int now,int fa)
{int c=1;for(int i=0;i<V[now].size();i++)if(V[now][i]!=fa){c+=dfs(V[now][i],now);}key[++index]=now;return range[now]=c;
}
int lowbit(int x){return x&(-x);}
void TreeAdd(int pos,int val)
{while(pos<=n){tree[pos]+=val;pos+=lowbit(pos);}
}
int Treesum(int r)
{int ans=0;while(r>0){ans+=tree[r];r=r-lowbit(r);}return ans;
}
int TreeQuery(int l,int r)//返回[l,r]总和
{return Treesum(r)-Treesum(l-1);
}
int main()
{//freopen("in.txt","r",stdin);while(~scanf("%d %d",&n,&p)){cls(tree,0);index=0;for(int i=1;i<=n-1;i++){int u,v;scanf("%d %d",&u,&v);V[u].pb(v);V[v].pb(u);}dfs(p,-1);pair<int,int> point[maxn];for(int i=1;i<=n;i++)point[i]=mp(key[i],i);sort(point+1,point+1+n);int ans[maxn];for(int i=1;i<=n;i++){int id=point[i].fs;int pos=point[i].sc;ans[id]=TreeQuery(pos+1-range[id],pos);TreeAdd(pos,1);//printf("[%d %d]",pos+1-range[id],pos);}for(int i=1;i<=n;i++)printf("%d%s",ans[i],i==n?"\n":" ");}return 0;
}

  

转载于:https://www.cnblogs.com/mgz-/p/8619887.html

2018 蓝桥杯省赛 B 组模拟赛(一)青出于蓝胜于蓝相关推荐

  1. 2018 蓝桥杯省赛 B 组模拟赛(一)--封印之门

    题目链接:https://nanti.jisuanke.com/t/A1594 蒜头君被暗黑军团包围在一座岛上,所有通往近卫军团的路都有暗黑军团把手.幸运的是,小岛上有一扇上古之神打造的封印之门,可以 ...

  2. 52-2018 蓝桥杯省赛 B 组模拟赛(一)java

    最近蒜头君喜欢上了U型数字,所谓U型数字,就是这个数字的每一位先严格单调递减,后严格单调递增.比如 212212 就是一个U型数字,但是 333333, 9898, 567567, 313133131 ...

  3. 2019 蓝桥杯省赛 B 组模拟赛(一)蒜厂年会

    2019 蓝桥杯省赛 B 组模拟赛(一)蒜厂年会 这题有两种情况 1.最大的和是在0~n-1 2.最大的和越过了首尾 这时候只要用n个数的和 - 0~n-1 的连续的最小和 这是求连续子集最大.最小 ...

  4. 2019 蓝桥杯省赛 B 组模拟赛(一)——计蒜客(未完待续)

    比赛链接: 2019 蓝桥杯省赛 B 组模拟赛(一) 友情提示: 蓝桥杯的头文件,如果不是都记得,可以直接万能头文件 #include <bits/stdc++.h>, 不过有的时候,这样 ...

  5. 2020年 第11届 蓝桥杯 C/C++ B组 省赛真题详解及小结【第1场省赛2020.7.5】【Java版】

    蓝桥杯 Java B组 省赛真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 注意:部分代码及程序 源自 蓝桥杯 官网视频(历年真题解析) 郑未老师. 2013年 第04届 蓝桥杯 ...

  6. 2015年第六届蓝桥杯C/C++B组省赛题目解析

    1.奖券数目 有些人很迷信数字,比如带"4"的数字,认为和"死"谐音,就觉得不吉利. 虽然这些说法纯属无稽之谈,但有时还要迎合大众的需求.某抽奖活动的奖券号码是 ...

  7. 第一届『Citric杯』NOIP提高组模拟赛 题解

    [官方题解]第一届『Citric杯』NOIP提高组模拟赛 题解 第一题 柠檬超市 这题是本次模拟赛的送分题.做法显然. 但是注意此题有一个陷阱: 注意W和C的规模都是10^9,所以如果直接用doubl ...

  8. python解答蓝桥杯真题3 省模拟赛 计算机存储中有多少字节

    python解答蓝桥杯真题3 省模拟赛 计算机存储中有多少字节 题目 问题描述 在计算机存储中,12.5MB是多少字节? 答案提交 这是一道结果填空的题,你只需要算出结果后提交即可.本题的结果为一个整 ...

  9. 计蒜客2018蓝桥杯省赛B组模拟赛(一)题目及解析(未完待续)

    一.题目列表 A. 结果填空:年龄         分值: 3 B. 结果填空:开关灯     分值: 7 C. 结果填空:U型数字  分值: 9 D. 代码填空:LIS         分值: 11 ...

  10. 计蒜客2018蓝桥杯省赛B组模拟赛(一)题目及解析

    转载自: https://blog.csdn.net/nihaopeng521/article/details/79470326 一.题目列表 A. 结果填空:年龄         分值: 3 B. ...

最新文章

  1. 面试官吐槽:面试了一个三本的学渣,开口就要一万六!
  2. 手把手教你画酷炫环形图(图文详解)
  3. Nature Reviews:拥抱未知:解析土壤微生物组的复杂性
  4. mysql 根据字段映射
  5. MQTT 轻量版实例发布,满足更多移动互联场景
  6. Nature 子刊重磅:腾讯与钟南山团队发布新冠危重症 AI 预测模型
  7. [转]cmd 设置环境cmd环境变量命令set 设置永久环境变量命令setx
  8. 前端学习(3001):vue+element今日头条管理--项目初始化总结
  9. jquery对下拉框的操作
  10. java泛型编程_Java编程泛型限定代码分享
  11. SAP License:未分配差异新解
  12. spirng 事物只支持 dml语句 update,insert delete
  13. mapgis安装|计算机中丢失basroot.dll
  14. BetaFlight模块设计之十一:GyroAcc任务分析
  15. linux直接点击iso安装win10,iso安装win10,win10iso直接解压安装
  16. mysql查询1999年后出生的_饭后笑笑 1999年出生的和2000年出生的秘密
  17. 《智能商业》由阿里巴巴学术委员会主席、前总参谋长曾鸣亲自编写,值得一读!
  18. 用函数统计各分数段人数c语言,如何使用Excel函数统计各分数段的人数(五种方法)...
  19. 苹果蓝牙耳机平替哪款最好?四款苹果蓝牙耳机平价替代
  20. ORACLE 日期加减函数

热门文章

  1. POJ - 1733 带权并查集 模运算 利用map进行离散化 题目没看全导致疯狂WA
  2. 【4500字归纳总结】一名软件测试工程师需要掌握的技能大全
  3. Win部署Flask服务_NSSM
  4. 茶酒“银行”的梦醒时分
  5. 弦截法(Secant Method)迭代求根的python程序
  6. c语言打印字符图案,用printf()打印简单字符图案.ppt
  7. Bit Miracle Jpeg2000-SEO狼术
  8. 《乾》: 相时而动的龙精神
  9. matlab中四阶龙格库塔算法、欧拉算法和改进的欧拉算法的总结
  10. 使用阿里云ESC服务器的时候域名解析成功为何打不开网站?