hdu 6394 树分块

双极性步进电机驱动技术:从H桥电路到精准控制 本文深入解析了双极性步进电机驱动技术的核心,从H桥电路的基础原理讲起,阐述了其作为实现电机正反转和精准控制的关键。文章详细介绍了H桥的工作模式、防共态导通设计,并对比了L298N、DRV8825及TMC2209等主流集成驱动芯片的选型。进一步探讨了通过微步进与电流矢量控制实现平滑、静音运行的高级技术,并提供了基于STM32的实战代码与避坑指南,帮助开发者从理论到实践全面掌握精准运动控制。 阅读详情

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6394

题目的数据好像不用先处理dfs序也可以过,将树分块然后每次更新在区间内向后更新,每次询问时向前查找一直到树根为止,同时更新向上弹的次数

#include<bits/stdc++.h>
#define inf 0x3f3f3f3f
#define mod 1000000007
#define For(i,m,n) for(int i=m;i<=n;i++)
#define Dor(i,m,n) for(int i=m;i>=n;i--)
#define LL long long
#define lan(a,b) memset(a,b,sizeof(a))
using namespace std;


const int maxn=1e5+336;
const int M=333;
int dp[maxn][22];
int a[maxn],b[maxn];
int fa[maxn];
int lg[maxn];


int get(int x,int now)
{
    for(int i=0;(1<<i)<=now;i++)
    {
        if(now&(1<<i))
            x=dp[x][i];
    }
    return x;
}

void update(int x)
{
    int t=x*M;
    if(!t)
    {
        t=1;
        a[0]=0;
        b[0]=0;
    }
    for(int i=t;i<=x*M+M;i++)
    {
        if(fa[i]<x*M)
        {
            a[i]=1;
            b[i]=fa[i];
        }
        else
        {
            a[i]=a[fa[i]]+1;
            b[i]=b[fa[i]];
        }
    }
}

int query(int x)
{
    int ans=0;
    while(x)
    {
        ans+=a[x];
        x=b[x];
    }
    return ans;
}


int main()
{
    int sum=2;
    lg[1]=0;
    for(int i=1;i<maxn;i++)
    {
        lg[i]=lg[i-1];
        if(i>sum)
        {
            sum<<=1;
            lg[i]++;
        }
    }
    int t;
    scanf("%d",&t);
    while(t--)
    {
        int n,m;
        scanf("%d",&n);
        lan(dp,0);
        For(i,2,n)
            scanf("%d",&dp[i][0]);
         //   dp[1][0]=1;
        For(j,1,lg[n])
            For(i,1,n)
                dp[i][j]=dp[dp[i][j-1]][j-1];
        For(i,1,n)
        {
            int tem;
            scanf("%d",&tem);
            fa[i]=get(i,tem);
        }
        for(int i=0;i<=n/M;i++)
            update(i);
//        For(i,1,n)
//        printf("a%d=%d b%d=%d fa%d=%d\n",i,a[i],i,b[i],i,fa[i]);
        scanf("%d",&m);
        int op,p,q;
        while(m--)
        {
            scanf("%d",&op);
            if(op==1)
            {
                scanf("%d",&p);
                printf("%d\n",query(p));
            }
            else if(op==2)
            {
                scanf("%d%d",&p,&q);
                fa[p]=get(p,q);
                update(p/M);
            }
        }

    }
    return 0;
}

 

从Delta Delay到Timing Window:详解数字芯片后端时序差异的那些坑 本文深入剖析了数字芯片后端设计中,模块级与系统级时序分析结果不一致的核心原因。重点解释了Delta Delay如何导致模块级分析的乐观假设,以及Timing Window(时序窗口)差异如何通过影响串扰噪声计算,在顶层集成时引发新的时序违例,尤其是保持时间问题。文章为工程师提供了从约束建模到签核策略的系统性应对方案。 阅读详情

相关推荐

ThingsBoard 仪表板状态

请先通过阅读仪表板概述和仪表板入门案例来熟悉ThingsBoard的仪表板。文章希望通过浅显的文字描述什么是仪表板状态及如何使用。 概念 状态功能使得仪表板可以分层,配合小部件的动作,实现多层仪表板之间的跳转.每个状态对应一个仪表板的图层 每个仪表板有一个默认的根状态, 根状态可以理解为默认状态, 也就是打开仪表板默认展示的仪表板图层.编辑模式下, 点击右上角的图标来管理状态.添加多个状态后左上角出现状态切换(图层切换)下拉列表可以通过选中根状态复选框切换新的默认展示的状态/图层配合小部件的动作,实现状

物联网三分钟 2308

关于树分块算法的一些研究

前言树分块这种算法,本蒟蒻没有查询到太多资料。 而gty系列中,出现过如“gty的妹子树”这样的题目,流传着一种“树分块”做法。 然而,网络流传的树分块算法都可以被菊花图卡掉。 流传的方法:一个结点的父亲所在块未满,就让该结点加入其父亲所在块,否则自成一块。 至于这个方法最早的出处我就不清楚了。 本文将介绍正统的树分块算法(其实也是笔者yy的)。 先把结论放上:其实树分块并没有什么卵用。

不来也不去的一只失忆蝴蝶 5834

华为昇腾310P3+deepseek蒸馏版性能调优:FP16精度优化全记录

本文详细介绍了在华为昇腾310P3硬件环境下优化DeepSeek蒸馏版模型FP16精度的关键技术路径。通过分层量化策略、内存分配优化和并行计算配置,显著提升模型推理性能,实现83%的并发处理能力提升,同时保持98.7%的原始模型准确率。

weixin_29074409的博客 346

树上分块初步

转自这位大神 DFS序分块 将树节点按照DFS序每sqrtnsqrtn个分成一块,可以处理关于子树问题但是由于在DFS序上分块基本都可以用logn的数据结构代替,所以很不常用 这种分块方式保证块的大小和数量,不保证块的连通和直径 Size分块 对于一个节点,如果它的父亲所属块的大小小于sqrtnsqrtn,则将该点加入其父亲的块否则新建一个块,将该点加入新的块中 这种分块方式保证块的...

weixin_30475039的博客 651

MATLAB随机生成m个三维坐标点,且各个坐标点之间的距离不小于n

randi函数 randi(max,m,n); %生成均匀分布的随机整数,max生成的随机整数最大值,生成m行n列的矩阵 编写函数sampling function [x,y,z]=sampling(lowx,upx,lowy,upy,lowz,upz,m,n) %该函数用来产生不重复的随机整数矩阵 %low—随机整数下界;up—随机整数上界;m—坐标点个数;n—各个坐标点之间的最小距离 %编...

qq_45384561的博客 9436

SOPHGO SG2000/SG2002 AI SoC异构架构解析与应用

异构计算架构通过整合不同指令集核心(如RISC-V、Arm和8051)实现性能与功耗的平衡,是现代嵌入式系统和AIoT设备的关键技术。其原理是根据任务特性分配至最适合的计算单元,例如通用计算使用高性能核心,实时任务交由专用核心处理。这种架构在智能视觉、工业检测等场景具有显著优势,能高效处理AI推理、多媒体编解码等任务。SOPHGO SG2000系列SoC采用创新的三核异构设计,集成了0.5-1TOPS的NPU加速器,支持Linux/Android/FreeRTOS多系统并行运行。开发中需注意核心间的IPC通

weixin_30684743的博客 353

树上分块 与 莫队算法

前言: 在序列上我们喜欢的暴力美学就是分块了,莫队算法就是其中之一. 那么我们在树上可以分块,去利用莫队算法做个漂亮的暴力吗? 可以! 要不就没有这篇文章惹 树上分块: 我们先学习一下树上如何分块! [SCOI2005] 王室联邦 这道题目就是一道经典的树上分块 我们记录一个栈,当一个子树的个数&gt;=块大小的时候,新建一个块,把这些点扔进这个块内. 首先,对于整个树dfs...

HT008的Blog 966

MediaPipe+Unity动作捕捉实战:如何用普通摄像头驱动3D人物模型(附避坑指南)

本文详细介绍了如何利用MediaPipe和Unity实现低成本动作捕捉,仅需普通摄像头即可驱动3D人物模型。通过MediaPipe的3D坐标预测能力,结合Unity的骨骼映射优化,解决单目摄像头下的三维重建难题,并提供实战避坑指南和性能优化技巧,帮助开发者快速实现专业级的人物模型驱动效果。

weixin_29047545的博客 356

HDU 6394 Tree(dfs序+分块)

Description 给出一棵nnn个节点的有根树,根节点为111,到达第iii个点可以一次往上跳aiaia_i层,跳出树则停止,两种操作,第一种是查询xxx点出发跳出该棵树需要的步数,第二种是修改axaxa_x Input 第一行一整数TTT表示用例组数,每组用例首先输入一整数nnn表示点数,然后输入nnn个整数a1,...,ana1,...,ana_1,...,a_n,之后输入一整数m...

ZSQ 509

STM32N6570-DK ISP调试

将下载线接入STLINK V3EC接口,将BOOT1拨码拨至右边,即将其置为H,上电或已经上电的按复位,打开STM32CubeProgrammer,设置start address:0x70000000。板子消耗电流较大,即使缩短数据线接了USB供电依然不能正常点亮显示屏,最终通过板上CN2端子加了外部5V供电,仍然需要560mA的外部电流。3.烧录bin文件:STM32N6_ISP_IQTune_App_revC01-v1.1.0-trusted.bin。

liu的博客 1065

Open3D KD-tree的使用【2025最新版】

Open3d使用FLANN构建KDTree以便进行快速最近邻检索。博客长期更新,本文最近一次更新时间为:2025年1月1日,代码已同步更新至Open3D 0.18.0版本。

点云侠的博客 40万+

P6177 Count on a tree II/【模板】树分块

题目链接 题目描述 给定一个 nnn 个节点的树,每个节点上有一个整数,iii 号点的整数为 valival_ivali​ 。 有 mmm 次询问,每次给出 u′,vu',vu′,v ,您需要将其解密得到 u,vu,vu,v,并查询 uuu 到 vvv 的路径上有多少个不同的整数。 解密方式:u=u′xor⁡lastansu=u' \operatorname{xor} lastansu=u′xorlastans 。 lastanslastanslastans 为上一次询问的答案,若无询问则为 000。 输入

sky123博客 324

Python爬虫实战:逆向解析腾讯视频API,高效获取结构化视频信息

首先,我们定义期望获取的数据结构,这有助于数据验证和代码清晰度。python"""腾讯视频信息数据模型"""title: str = Field(..., description="视频标题")vid: str = Field(..., description="视频唯一ID")play_count: Optional[int] = Field(None, description="播放量")

2201_76125261的博客 2379

hdu 6394 Tree (树分块)

Tree Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 585    Accepted Submission(s): 206   Problem Description Alice and Bob are playing with...

夏消的博客 509

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

HDU 6394 Tree 树分块或者LCT 2018杭电多校第七场

Tree Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 380    Accepted Submission(s): 130 Problem Description Alice and Bob are playing with a...

山科小菜鸡 576

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

HDU - 6394 Tree(树分块+倍增)

http://acm.hdu.edu.cn/showproblem.php?pid=6394 题意 给出一棵树,然后每个节点有一个权值,代表这个点可以往上面跳多远,问最少需要多少次可以跳出这颗树 分析 先dfs一次得到dfs序,然后按dfs序分块。倍增计算从某点跳x到哪个点,用cn保存它跳出这一块需要的次数,ne保存跳出这块会去的点。然后块内就暴力修改了。复杂度nsqrt(n); ...

weixin_34113237的博客 171

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

HDU - 6394 Tree(树分块+倍增+dfs序)

题意:给出一棵树,然后每个节点有一个权值,代表这个点可以往上面跳多远,问最少需要多少次可以跳出这颗树。 分析:树上弹飞绵羊,利用dfs序把树上节点变成连续区间序列,先dfs一次得到dfs序,然后按dfs序分块。倍增计算从某点跳x到哪个点,用cn保存它跳出这一块需要的次数,ne保存跳出这块会去的点。然后块内就暴力修改了。复杂度n*sqrt(n)。 参考:https://www.cnblogs.c...

常胜将军的博客 252

Tree HDU - 6394 (倍增+树分块)

Alice and Bob are playing with a magic tree This magic tree has nn nodes,with n−1n−1 magic paths connecting them into a connected block. Node 11 is at the top of the magic tree (layer 00). Node ii is ...

untilyouydc 432

hdu 6394 Tree (2018 Multi-University Training Contest 7 1009) (树分块+倍增)

链接:http://acm.hdu.edu.cn/showproblem.php?pid=6394 思路:用dfs序处理下树,在用分块,我们只需要维护当前这个点要跳出这个块需要的步数和他跳出这个块去到的下一个点的下标,这样更新和询问的复杂度就降到了sqrt(n),查询树上的点的时候我们可以用倍增来降时间复杂度,这样处理下就不会超时了,。 介绍下代码主要数组的作用方便看懂代码;l[i] : 当...

weixin_30835933的博客 116

HDU - 6394 Tree (2018 Multi-University Training Contest 7)(树分块+倍增 或 LCT维护路径长度)

Tree Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 720    Accepted Submission(s): 266   Problem Description Alice and Bob are playing with...

LP_Cong 533

树的分块练习

树的分块一般有以下几种 按dfs序分块 按size分块 按深度分块 王室联邦分块 练习1 LuoguP2325 [SCOI2005]王室联邦 要求将树分成若干块, 使得每块大小范围在[B,3B], 块可以不连通, 但添一个点(省会)后必须连通 DFS结束时, 将点加入一个集合, 集合大小不够B的话继续向上返回, 否则直接分一个块, 并将当前DFS到的点...

weixin_30677073的博客 256

2018 Multi-University Training Contest 7-1009 & hdu6394:Tree(LCT)

  题目大意: 这题基本上就是弹飞绵羊的树上版,所以题意就不多讲了。 可以参考另外一篇博客:弹飞绵羊普通版   解题思路: 首先肯定可以用树分块来写,思路就是跟线性的是一样的。其次的话如果用LCT的话近似裸题,只是需要求一下对于点x,向上跳k次会跳到哪个点,用倍增求出来即可。然后我添加了一个n+1作为1结点的父亲,跳出去的点默认跳到n+1,之后就和线性的一样了,这次主要也是为了测试LC...

污miao汪的博客 270

【THUPC2019】不用找的树 / tree(树分块)(树形DP)

传送门 是我没见过的树分块姿势,出题人写的题解跟****一样,只有会这道题的人才看得懂,反正我没看懂,我看了std那8K难以形容的代码才知道题解真就NM乱写。 严格来说,只有分块的具体方法那里是乱写,但是那里乱写直接导致了后续的无法理解。 出题人:反正预计也不会有人想去写,题解乱写就行了。 那乱写说是垃圾也就不为过了。 所以这里来一个我的视角的题解。 更离谱的是树上距离的定义居然是路径上点数而不...

zxyoi_dreamer的博客(不定期诈尸) 824

树上莫队非详解

做法 树分块,像王室联邦一样 然后怎么移动端点 蒯VFKVFKVFK的博客: 用S(v, u)代表 v到u的路径上的结点的集合。 用root来代表根结点,用lca(v, u)来代表v、u的最近公共祖先。 那么 S(v, u) = S(root, v) xor S(root, u) xor lca(v, u) 其中xor是集合的对称差。 简单来说就是节点出现两次消掉。 lca很讨...

Cyhlnj 296

数据结构:树上分块

把所谓的树结构分成一块儿一块儿的? 当然这种数据结构并不强力,如果想要借助其分块儿的思想来解决问题,肯定有更好的其它的算法来替代它 所以,这里只是铺一个知识点探探路而已 典型例题BZOJ1086 题意就是把树分块儿 但是为何样例是错的? 其实递归的学问还是很大的 1 #include<cstdio> 2 const int maxn=1005; 3 cons...

weixin_30369087的博客 303
上一篇: hdu Pizza Hub 计算几何
下一篇: 计蒜客 2018南京赛区网络赛 The writing on the wall 暴力dp
Dale_zero
博客等级 码龄9年 10粉丝 174原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值