poj3321Apple Tree

【poj 3321】Apple Tree 题意&题解&代码(C++) poj 线段树 阅读详情
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int N=100005;
int n,m,s[N<<1],e[N<<1],next[N<<1],c[N],l[N],r[N],cnt;
bool vis[N];
//s[]start,e[]end,
//cnt表示dfs访问时间,l[]记录进入时,r[]记录出去时
//注意c[i]是按子树(dfs序)存的,so update,,,,
int lowbit(int i){
    return i&(-i);
}
void update(int x,int y){
    for(int i=x;i<=n;i+=lowbit(i))
        c[i]+=y;
}
int sum(int x){
    int ret=0;
    for(int i=x;i>0;i-=lowbit(i)){
        ret+=c[i];
    }
    return ret;
}
void connent(int i,int u,int v){//the i-th branch
    next[i]=s[u];//与第i边同起点的下一边位置
    s[u]=i;//以u为起点边的位置
    e[i]=v;//第i边终点
}
void dfs(int x,int v){//x当前边,v为前一条边
    l[x]=(++cnt);
    for(int i=s[x];i;i=next[i])
        if(e[i]!=v) dfs(e[i],x);//枚举下一边/////////////(e[i],x)
    r[x]=cnt;
}

int main()
{
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
        update(i,1);//init
    int u,v;
    //memset(s,-1,sizeof(s));
    //memset(next,-1,sizeof(next));
    for(int i=1;i<n;i++){
        scanf("%d%d",&u,&v);
        connent(i,u,v);
        //connent(j++,v,u);//自反性
    }
    dfs(1,-1);
    scanf("%d",&m);
    char c;
    int x;
    while(m--){
        scanf(" %c%d",&c,&x);
        if(c=='C'){
            if(vis[x]){
                update(l[x],1);
                vis[x]=false;
            }
            else{
                update(l[x],-1);//(l[x],-1),,,由1变0,减法操作
                vis[x]=true;
            }
        }else{
            printf("%d\n",sum(r[x])-sum(l[x]-1));//l[x]-1
        }
    }
    return 0;
}

POJ - 3321Apple Tree (线段树 + dfs序) Description There is an apple tree outside of kaka’s house. Every autumn, a lot of apples will grow in the tree. Kaka likes apple very much, so he has been carefully nurturing the big apple tree. The tree has N forks which are connected by branches. Kaka . 阅读详情

相关推荐

告别Modern Standby噩梦:Win11睡眠断网冻结的根源剖析与S3睡眠回归实战

本文深入剖析了Windows 11中Modern Standby(现代待机)模式导致睡眠后断网、系统冻结等问题的根源,指出其与硬件驱动、后台活动的兼容性矛盾。文章提供了通过修改注册表键值强制系统回归稳定S3睡眠状态的详细实战步骤,帮助用户彻底解决睡眠故障,实现可靠的远程访问与挂机任务。

weixin_29210727的博客 603

【POJ 3321】 Apple Tree 树状数组 + DFS序(详解)

Description There is an apple tree outside of kaka’s house. Every autumn, a lot of apples will grow in the tree. Kaka likes apple very much, so he has been carefully nurturing the big apple tree. The ...

待到山花烂漫时 657

成本150元的高性能RDP协议瘦客户机

云终端市场是一个跨度很大的市场。既有数千元的品牌的瘦客户机,也有几百元的瘦客户机,还有200-300元的支持RDP协议的多用户云终端。但是200-300元的多用户终端,在显示性能上不尽人意,一般用于地产中介门店,工厂产线的电子看板等场合。有没有性能更好,价格更低的方案呢? 答案是有。 这个方案就是 二手的x86 瘦客户机 + DoraOS瘦客户机系统免费版(仅支持RDP)。 首先我们看硬件,在某宝搜索 升腾C92 ,找到最低配置的( CPU:J1800,内存:2G,硬盘:8G)。价格都在150以内。

云飞扬的桌面云 7410

【树状数组】POJ 3321 Apple Tree

POJ 3321 DFS+树状数组

小do在努力 666

Haclon案例-找出图中面积最大的圆

自带的函数,求得圆的面积和圆心点坐标,然后,用本章所学习的选择算子和循环算子找出面积最大的圆。的图片,试着给它加上不同种类的噪声,然后找出其中面积最大的圆,并将圆的面积标注在其圆心位置。可知,除了六个圆形之外,还有一些微小的噪声点,采用了开运算和特征选择的方法去除噪声。1. 该图片为一灰度图,对其进行二值化,二值化后如图。4. 在面积最大圆的圆心坐标位置写上该圆的面积。

qq_20660115的博客 896

【数字电源/MATLAB+PLECS】如何进行 Buck 数字电源仿真(二)PLECS 搭建开环 Buck 功率级

本文介绍了如何在PLECS中搭建开环Buck功率级模型,验证数字电源设计的基本思路。重点内容包括: 明确开发顺序:先开环验证功率级,再闭环设计控制器 搭建关键组件:输入电源、PWM模块、MOSFET开关、续流二极管、LC滤波电路及负载 设置初始参数:24V输入、12V输出、200kHz开关频率、22μH电感、100μF电容 测量关键波形:MOSFET Vds验证开关动作、电感电流纹波和输出电压稳态值 提供完整仿真模型和GitHub资源,便于读者复现验证 文章强调通过开环测试先确保功率级正确性,为后续闭环控制

weixin_43234123的博客 1218

POJ 3321 Apple Tree 题解

POJ 3321 Apple Tree 题解 POJ 3321 题目 There is an apple tree outside of kaka’s house. Every autumn, a lot of apples will grow in the tree. Kaka likes apple very much, so he has been carefully nurturing the big apple tree. The tree has N forks which are conne

Y的博客 483

EPLAN 电气制图(六):电机正反转副勾主电路绘制

【插入】→【设备】→选择 “SIE.3RV2011-1AA15”(Q1)和 “SIE.1TL0001-1DB3”(M1),放置于图纸左侧。生成端子排 X3:【端子排导航器】→新建编号 “1-20”,部件 “PXC.3211814”,放置于电机上方,功能文本标注 “电机端子”。属性设置:双击结构盒,在 “显示设备标识符” 中输入位置代号(如 “+ 柜外”),并在 “格式” 选项卡中调整线型与颜色。实用技巧:勾选【选项】→【设置】→【图形的编辑】中的 “绘制带有空白区域的结构盒”,可使元件布局更清晰。

电工 2030

POJ 3321 Apple Tree 题解

POJ 3321题解

DarkoDu的博客 1032

基于Python的智能动漫更新监控爬虫系统:从原理到实战

本文详细介绍了如何使用Python构建一个智能化的动漫更新监控系统,涵盖从基础爬虫到高级自动化监控的全套解决方案。文章将深入探讨最新的网络爬虫技术,包括异步请求、反反爬策略、智能解析算法等,并提供完整的代码实现和性能优化方案。通过本系统,用户可以实时获取多个动漫平台的更新信息,并通过多种渠道接收通知。关键词:Python爬虫、动漫监控、自动化通知、异步爬虫、反反爬策略。

2201_76125261的博客 902

Android 13.0 设置默认屏幕亮度百分比

在13.0的系统ROM产品开发中,在一些产品开发中,对于设置默认屏幕亮度和屏幕亮度百分比的功能,在开发中也是常见的功能,在10.0的平台设置可能有一些不同,一般的都是在SettingProvider中设置就可以了 在11.0以后的系统中设置默认屏幕亮度的方法就不同了,接下来具体分析功能的实现

安卓兼职framework和app工程师的博客 1560

POJ 3321 Apple Tree【树状数组】

POJ 3321 Apple Tree【树状数组】

DafeiACMer 863

关于海康MVS软件显示速率低与1GB、相机丢包的设置优化

工控机主要应用与视觉检测!相机网线及工控机网口都是千兆的!设置完巨帧数和速度与双工(选择为全双工),显示速度低与1GB,不能够正常工作。C.LA-Properdes-Advanced-将RecerveBuffers更改为2048。E.LAN-属性-电源管理-取消选中允许计算机关闭此设备以保存电源。这种情况均为MVS设置不熟悉,可参照如下设置优化相应端口相机配置。D.局域网-属性-高级-将传输缓冲区更改为20484。B.LAN-属性-高级-将中断记录部分更改为执行。A.关闭采集控制帧速率控制。

米可的博客! 8820

poj 3321 Apple Tree

点击打开poj 3321 思路: 树状数组 分析: 1 题目给定一棵树,然后有n个树枝,每个树枝上面初始化有1个苹果,现在有m个操作 2 题目给定的是一棵树,我们应该考虑怎么把这棵树映射成一个数组,并且跟节点和儿子节点的编号是连续的。这一步我们可以利用dfs来做,利用时间撮的概念,第一次到达的时间作为起始的时间,第二次到达的时间为终点的时间,下图就是一个例子 ...

weixin_30566149的博客 161

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

poj3321——Apple Tree

题目大意:给出一颗N个节点的苹果树,每个节点只能长一个苹果,根节点标号1。苹果树一开始每个结点都有一个苹果。现在有两种操作,C  x是改变某个节点(如果x节点有苹果就吃掉,如果x结点没有苹果就是长出来一个新苹果);P  x是查询以节点x为根的子树有多少个苹果(包括x节点本身) 输入:N(N ≤ 100,000)            u  v(节点编号,意思是uv两个节点之间有一条边,共N-1

tzyshiwolaogongya的博客 373

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

POJ3321 Apple Tree

题目链接:http://poj.org/problem?id=3321 乍一看不会做,仔细一看感觉是线段树,但是怎么用线段树做这是一个问题。 对于每个节点先序遍历,求出来每一个节点的管辖区间,然后就是该怎么做就怎么做……单点更新+区间查询,如果求出来取件貌似还比较水,就是那个区间不太好搞定……尤其对于我这种不怎么写深搜的渣渣……应观众要求,还要发一个树状数组版本…… //线段树 #inc

浅雨歌 752

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Poj3321 Apple Tree dfs序 + 树状数组

Poj3321 Apple Tree dfs序 + 树状数组 单点加 区间询问 1 #include <cstdio> 2 #include <cmath> 3 #include <cstdlib> 4 #include <cstring> 5 #include <algorithm> 6 #i...

weixin_33842328的博客 157

POJ 3321 Apple Tree

题目链接:http://poj.org/problem?id=3321 刷POJ分类的时候遇到的题,只知道是树状数组,但是分支编号不连续,不晓得怎么用树状数组求和。 后来看了解题报告才知道需要把分支通过DFS映射成编号连续的,记录每个子树的起始位置和终止位置,然后再用树状数组求和。 即使明白了思路,代码实现上也还是有很多地方不理解。唉,数据结构学得实在有够糟糕…… 树的邻接表...

aegt43853的博客 128

poj3321 Apple Tree

DFS序+树状数组

AaronPolaris 1329

[POJ3321] Apple Tree 苹果树 - 树状数组

题目描述有一棵N个结点的树,一开始每个结点上都有一个苹果,每次有两种操作:    (1)C x:如果x结点上有一个苹果,那么摘下它,否则x节点上会再生出一个苹果;    (2)Q x:询问以x结点为根的子树中苹果的个数; 你要对于每个Q操作,输出对应的答案。 输入格式第一行为一个数N,表示树的结点个数,默认以1为根; 接下来N-1行,每行两个数Ui,Vi,表示一条树边; 然后一行是一个数

Bill_Yang_2016的博客 763

Apple Tree————POJ—3321

题目: There is an apple tree outside of kaka's house. Every autumn, a lot of apples will grow in the tree. Kaka likes apple very much, so he has been carefully nurturing the big apple tree. The tree h...

admin__的博客 399

【树状数组】 poj3321 Apple Tree

Apple Tree 题目:http://poj.org/problem?id=3321 题意:一棵有n个结点的树,初始时每个结点都有一个苹果,之后有m个操作,C操作:如果x结点有苹果,执行操作后x结点无苹果;如果x结点没有苹果,执行操作后x结点出现苹果。Q操作:问x结点及其子树上一共有多少苹果。 题解:单点更新,区间查询,一看就是线段树类型的题目。但是这个是树形结构,需要转换成线性的才能计

Ted's 游乐园 840
上一篇: bzoj1507editor
下一篇: hdu3887Counting Offspring
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值