CF519E

ROS新手必看:5分钟搞定URDF小车建模(附Rviz可视化调试技巧) 本文为ROS新手提供了快速构建URDF机器人模型的实战指南。通过一个完整的两轮差速小车建模案例,详细解析了URDF的核心语法、Rviz可视化调试技巧以及常见问题排查方法,帮助初学者快速掌握ROS机器人建模与可视化调试的核心技能。 阅读详情

Codeforces 294 Div.2 E

题意是说, 给一棵树, 每次询问给出树上两点, 求到这两点距离相同的点的个数.

思路是先取定一个结点做根结点, 遍历求一次各个结点的父结点, 以该结点为根结点的子树中的结点数, 以及该结点的深度. 再利用递归预处理出每个结点向上2^j深度所对应的结点. 这步所得的结果事实上也可用于求LCA. 最后, 对于每次询问, 先考虑距离, 之后直接找出等距离所对应的结点, 再利用之前求出的结点数直接计算即可. 这种思路好像也是比较经典的. 详情见代码.


#include<stdio.h>
#include<iostream>
#include<string.h>
#include<algorithm>
#include<vector>
using namespace std;

typedef long long ll;

const int maxn=100005,maxm=25;
vector<int> E[maxn];

int n,rot;
int fat[maxm][maxn],dp[maxn],dn[maxn];
int dl[maxn],dln,sta;

int rai(int x,int d)
{
    int t=0;
    while(d>0)
    {
        if(d&1) x=fat[t][x];
        d>>=1;++t;
    }
    return x;
}

int lca(int x,int y)
{
    int d1=dp[x],d2=dp[y];
    if(d1>d2) return lca(y,x);
    if(d2>d1)
    {
        y=rai(y,d2-d1);
    }
    if(x==y) return x;
    int ad=0,bd=d1;
    while(bd-ad>1)
    {
        int xd=(bd+ad)/2;
        if(rai(x,xd)==rai(y,xd)) bd=xd;
        else ad=xd;
    }
    return rai(x,bd);
}

int dis(int x,int y)
{
    int l=lca(x,y);
    return dp[x]+dp[y]-2*dp[l];
}

int main()
{
    int i,j;
    scanf("%d",&n);
    for(i=0;i<n-1;i++)
    {
        int x,y;scanf("%d %d",&x,&y);
        --x;--y;
        E[x].push_back(y);
        E[y].push_back(x);
    }
    for(i=1,rot=0;i<n;i++) if(int(E[i].size())>int(E[rot].size())) rot=i;
    memset(fat,-1,sizeof(fat));memset(dp,-1,sizeof(dp));memset(dn,0,sizeof(dn));
    dp[rot]=0;dln=sta=0;dl[dln++]=rot;
    while(sta<dln)
    {
        int x=dl[sta++];
        for(i=0;i<E[x].size();i++)
        {
            int y=E[x][i];
            if(dp[y]<0)
            {
                fat[0][y]=x;
                dl[dln++]=y;
                dp[y]=dp[x]+1;
            }
        }
    }
    for(i=n-1;i>=0;i--)
    {
        int x=dl[i];
        dn[x]=1;
        for(j=0;j<E[x].size();j++)
        {
            int y=E[x][j];
            if(y!=fat[0][x]) dn[x]+=dn[y];
        }
    }
    for(i=0;i<n;i++)
    {
        int x=dl[i];
        for(j=1;(1<<j)<=dp[x];j++)
        {
            fat[j][x]=fat[j-1][fat[j-1][x]];
        }
    }
    int Q;
    scanf("%d",&Q);
    while(Q--)
    {
        int x,y;scanf("%d %d",&x,&y);
        --x;--y;
        int dt=dis(x,y);
        if(dt%2) {printf("0\n");continue;}
        if(x==y) {printf("%d\n",n);continue;}
        dt>>=1;
        if(dp[x]==dp[y])
        {
            int lx=rai(x,dt-1),ly=rai(y,dt-1);
            printf("%d\n",n-dn[lx]-dn[ly]);
        }
        else if(dp[x]<dp[y])
        {
            int lt=rai(y,dt),ly=rai(y,dt-1);
            printf("%d\n",dn[lt]-dn[ly]);
        }
        else
        {
            int lt=rai(x,dt),lx=rai(x,dt-1);
            printf("%d\n",dn[lt]-dn[lx]);
        }
    }
    return 0;
}


【OpenCV实战】简洁易懂的车牌号识别Python+OpenCV实现“超详解”(含代码) 简洁易懂的车牌号识别Python实现(含代码)1、整体思路2、代码详解 1、整体思路 2、代码详解 阅读详情

相关推荐

【高低温试验】试验报告模板

高低温循环试验,验证被测设备(DUT)在极端高温、低温环境下的性能稳定性、功能可靠性及安全性,确保其符合设计规范和相关标准(如GB/T 2423.1、GB/T 2423.2)。:验证设备在剧烈温度变化下的耐受能力(如-40℃↔+85℃,温变速率≥10℃/min)。低温测试标准:GB/T 2423.2-2008(温度-40℃,保持时间4小时):模拟高温高湿环境(如温度+60℃,湿度95%RH),测试防潮性能。

电路巫师把一切不可能变成不可能 1565

CF 519E(树上倍增求lca)

传送门:A and B and Lecture Rooms 题意:给定一棵树,每次询问到达点u,v距离相等的点有多少个。 分析:按情况考虑: 1.abs(deep[u]-deep[v])%2==1时,必定不存在到达u,v距离相等的点。 2.如果deep[u]==deep[v]时,ans=n-num[lca(u,v)u在的儿子树]-num[lca(u,v)v在的儿子树]。 3.如果d...

weixin_33841503的博客 194

时序异常检测汇总

时序异常检测

Mark_Australia的博客 1万+

CF519E - A and B and Lecture Rooms

题意:给出一颗n个节点的树,有m次查询,每次查询求有多少个点到a、b的距离相等(1 思路:树链剖分,可以看出有答案就是这条链的节点个数为奇数(链的长度为偶数)             主要就是找到a和b的LCA,还有a到b路径上的中点(mid),及中点偏向a的节点(midA)和中点偏向b的节点(midB) 这3个节点,分3种情况即可     size[i] 表示子节点和本身的节点数 dep[

u010485714的专栏 685

重装系统后,恢复Oracle的.ORA文件

前几天,系统莫名奇妙产生很多宏病毒,进而感染整个C盘,不得已,格式化后重装了系统。 重装系统之后,突然想到D盘中的oracle中很多数据没导出来备份,安装文件下有很多有用的.ORA文件,抱着死马当活马医的态度,居然成功了。 1、将原来D盘(D:\oracle\product\10.2.0\oradata\orcl)下的数据文件备份下其他盘,将D盘的oracle目录名改成oracle1。安装数据

zhanggnol的blog 5551

H3C设备VRF配置实战:5步搞定多业务网络隔离(附排错技巧)

本文详细介绍了在H3C设备上配置VRF(虚拟路由转发)实现多业务网络隔离的实战方法。通过五步配置流程,从创建VPN-instance、绑定接口到配置独立路由表,帮助网络工程师在单台设备上构建逻辑隔离的企业级网络,并分享了高级路由配置与常见排错技巧。

gold8的专栏 937

CF519E A and B and Lecture Rooms (思维+lca)

CF519E A and B and Lecture Rooms

qq_61305213的博客 179

论文学习:Towards Automated Infographic Design:Deep Learning-based Auto-generation of Extensible Timeline

title: “Towards Automated Infographic Design:Deep Learning-based Auto-generation of Extensible Timeline” tags: [“论文评述”, “报告”] date: 2019-08-22 author: 叶慧 mathjax: true 论文:Towards Automated Infograph...

xiaoyehahaha的博客 731

Payoneer实战指南:从注册到提现,避开新手必踩的三大费用陷阱

本文详细解析Payoneer从注册到提现的全流程,重点避开新手常犯的三大费用陷阱。涵盖注册资料填写技巧、隐藏收款费用解析及提现汇率优化策略,帮助用户有效降低跨境支付成本。特别提醒注意币种转换费和中间行费用等常见雷区,并分享多账户管理等进阶技巧。

weixin_30267785的博客 356

视觉SLAM十四讲习题答案

阅读《视觉SLAM十四讲》中遇到的问题及习题资源整理,或为原创,或来自网络,如有问题请与我联系,会在第一时间加以修正。 后来自己写完看到另一位写的博客,相形见绌,大家可以互相结合的看。 第一讲 1.线性方程的解:转载自宋洋鹏(youngpan1101),了解线性代数可关注B站3Blue1Brown,以及线性代数,知乎上有其精细笔记。 2.高斯分布参考这位博主Johnny-Cuii的文章,具体...

INFINITE POSSIBILITIES 1万+

【Python搞定车载自动化测试】——Python实现车载以太网DoIP刷写(含Python源码)

随着智能电动汽车行业的发展,汽车=智能终端+四个轮子,而人工智能也发展越来越快,Python语言使用越来越广,本章节主要介绍如何使用Python语言基于Pytest自动化框架来实现DoIP诊断自动化测试。首先回顾一下DoIP诊断基础知识:DoIP(Diagnosis over Internet Protocol)是一种用于车辆诊断的网络通信协议。它基于现代互联网技术,允许通过以太网或IP网络进行车辆诊断和通信。

测试领域技术分享 3795

cf519E

传送门 多组询问,问到树上两个点x,y距离相等的点的个数。 倍增求lca. //Twenty #include<cstdio> #include<cstdlib> #include<iostream> #include<algorithm> #include<cmath> #include<cstring&...

weixin_30916125的博客 100

下载猫 —— 会员体系安全分析与加固方案

下载猫的会员验证体系完全失效,破解不需要任何工具链、不需要写代码、不需要改文件。已验证的成功攻击路径:攻击者启动软件时加一个参数,然后用 3 行 JavaScript 即可将会员状态改为"有效期至 2099 年",全部功能闸门放行。等价于普通用户按F12打开控制台输入 3 行代码,全程不到 10 秒。项目结论破解难度⭐ 极低(会按 F12 即可,无需任何破解工具)是否修改文件否(重启软件自动恢复)是否需要服务器否是否影响其他用户单人即可完成,可复制分发修复所需工作量。

猫敷雪 49

CF519E A and B and Lecture Rooms

最近很颓……难题想不动……水题写不对,NOIP怕是???? 考虑到树上路径的唯一性,假如这两个点的距离是个奇数,那么凉了,一定找不到一个点到这两个点的距离都相等。 判完奇数的情况可以找到这个和两个点距离相等的点,这里又要分两种情况讨论: 1、这个点刚好是$lca$。 如图,蓝色为询问点,绿色为$lca$,黄色为$lca$到两个蓝色点路径上的第一个儿子。显然只有两个黄色点子树中的点是...

dashu497731727的博客 156

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

假人有限元模型

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

cf519E. A and B and Lecture Rooms

树

ACoder 198

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

codeforces 519E A and B and Lecture Rooms

题意: 给一颗无根树。然后m个询问(A,B),求到A,B距离相等的节点个数。 思路: 分情况讨论。。 其中当A,B之间存在长度为偶数的路径时,讨论A,B深度是否相等。 难点是怎样在A,B深度不等的时候求路径上的中点。 如果会LCA的DP算法,也叫Binary Raise(我认为比叫二分搜索恰当,因为算法中根本就没有搜索 = =!),那么我们就可以求得x的第k个祖先(第0个是x的父亲)。问

slowlight93的专栏 926

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

CF508E

贪心题是很有趣的... 首先,本题为括号匹配问题,那么可以考虑进行栈模拟 然后,我们思考一下如何匹配:虽然题目中仅对右括号的位置提出了区域性要求,但可以发现,对能匹配上的栈顶括号立刻进行匹配一定是一种最优解! 为什么? 根据括号匹配原则,如果栈顶括号未被匹配,那么其他括号将无法被匹配,那么栈顶括号越长时间不被匹配,栈内括号失配的可能就越大。相反,如果我们对能匹配的栈顶括号立刻进行匹配,不会...

lleozhang的博客 225

A and B and Lecture Rooms CodeForces - 519E

http://codeforces.com/problemset/problem/519/E 给一个树图 每次询问给两个点xy 问有多少点和两点距离相等 先判两点距离奇偶 如果为偶数则不存在某点和此两点距离相等 为奇数则求出与xy之间路径上的中点 假设当前中点就是树根的话 就用n减去根节点所有包含xy的直接子树的节点数就好 因为这两棵子树上的点肯定是偏向于某一方的 虽然我们建的是有根树 但...

sunyutian1998的博客 262

[CodeForces519E]A and B and Lecture Rooms(lca)

题目描述传送门题意:求树上到某两点距离相等的点有多少个。题解如果这两个点不存在中点(距离不为偶数),答案显然为0。 由于树上的路径是唯一的,那么这x,y的中点一定满足条件,同时和这个中点相连的、并且到这个中点的路径不经过xy这条树链上的点都满足题意。那么我们可以用倍增求出这两个点的中点,然后用size什么的计算一下就行了。 注意根据xylca的位置要分情况讨论,细节不少,所以一定要写对拍!!!代

zyf2000 798

CF 519C

题目:水题不翻题解:for循环c语言练习题#include&lt;iostream&gt; #include&lt;algorithm&gt; using namespace std; int main(){ int n,m; cin&gt;&gt;n&gt;&gt;m; int maxx=-1e9-1; for(int i=0;i&lt;=n;i++){ ...

mengwuyaaa的博客 776

CF 519D

题目:找出字符串中权值和为0且首位字母相同的子串个数题解:计算前缀和。#include&lt;iostream&gt; #include&lt;string&gt; #include&lt;map&gt; using namespace std; long long alpha[26]; string str; int main(){ for(long long i=0;i&lt;26...

mengwuyaaa的博客 343

CodeForces 519E A and B and Lecture Rooms(倍增)

A and B are preparing themselves for programming contests. The University where A and B study is a set of rooms connected by corridors. Overall, the University hasnrooms connected byn - 1co...

weixin_30386713的博客 210
上一篇: CF540E
下一篇: CF543A
sysuyudx
博客等级 码龄12年 0粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值