poj 1470:Closest Common Ancestors(最近公共祖先,Tarjan模版)

SpringBoot SSE避坑指南:当客户端突然断开时服务端SseEmitter的正确回收姿势 本文深入探讨了SpringBoot中SSE连接的生命周期管理,特别是客户端主动断开连接时服务端SseEmitter的正确回收机制。文章重点分析了客户端调用eventSource.cancel()等场景下,如何利用onCompletion()回调进行可靠的资源清理,避免内存泄漏,并提供了防御式编程策略和实战优化建议。 阅读详情
大致题意:
给出一棵根树,给出一些成对的点,求出每对点的最近公共祖先。
大致思路:
第一道Tarjan,很裸,这个题目算是当模版用了,代码修改自 子任博客

详细代码:

#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std;
#define MAXN 1100
#define MAXM 500000
struct Edge{
    int u,v,next;
} e[2*MAXN];
struct Query{
    int u,v,w,next;
} e1[MAXM];
int n, m, cnt1, cnt2;
int head1[MAXN], head2[MAXN], parent[MAXN], ans[MAXM], ret[MAXN];
bool vis[MAXN];
bool use[MAXN];
void init(){
    cnt1 = cnt2 = 1;
    memset(head1,-1,sizeof(int)*(n+1));
    memset(head2,-1,sizeof(int)*(n+1));
    memset(vis,false,sizeof(bool)*(n+1));
    memset(parent,-1,sizeof(int)*(n+1));
}
void addedge(int u, int v){
    e[cnt1].u = u;
    e[cnt1].v = v;
    e[cnt1].next = head1[u];
    head1[u] = cnt1++;
}
void addedge2(int u,int v,int w){
    e1[cnt2].u = u;
    e1[cnt2].v = v;
    e1[cnt2].w = w;
    e1[cnt2].next = head2[u];
    head2[u] = cnt2++;
}
int find(int u){
    if(parent[u] == -1)
        return u;
    return parent[u] = find(parent[u]);
}
void tarjan(int u){
    int i, v, w;
    vis[u] = true;
    for(i = head2[u]; i != -1; i = e1[i].next){
        v = e1[i].v;
        w = e1[i].w;
        if(vis[v])
            ans[w] = find(v);
    }
    for(i = head1[u]; i != -1; i = e[i].next){
        v = e[i].v;
        if(!vis[v]){
            tarjan(v);
            parent[v] = u;
        }
    }
}
int main(){
    int i, j, u, v;
    while(scanf("%d",&n) != -1){
        init();
        memset(use,false,sizeof(bool)*(n+1));
        for(i = 1; i <= n; i++){
            scanf("%d:",&u);
            while(getchar() != '(');
            scanf("%d",&j);
            while(getchar() != ')');
            while(j--){
                scanf("%d",&v);
                addedge(u,v);
                use[v] = true;
            }
        }
        scanf("%d",&m);
        for(i = 1; i <= m; i++){
            while(getchar() != '(');
            scanf("%d%d",&u,&v);
            addedge2(u,v,i);
            addedge2(v,u,i);
            while(getchar() != ')');
        }
        for(i = 1; i <= n; i++)  //寻找根节点,这里是trick
            if(!use[i])
                break;
        tarjan(i);
        sort(ans+1,ans+m+1);     ////ans[i]用来存放第i问中两点的公共祖先
        memset(ret,0,sizeof(ret));
        for(i = 1; i <= m; i++){
            ret[ans[i]]++;
        }
        for(i =1; i <= n; i++)
            if(ret[i]!= 0)printf("%d:%d\n",i,ret[i]);
    }
    return 0;
}


Redhawk:如何gds2def? 使用redhawk gds2def功能 这其中gds_layer.map的书写方式如下: m代表metal,v代表via。 ICC/ICC2用户可以从tech file中获取layer number。 innovus用户可以从stream out layer map中获取layer number。 最后运行gds2def -m gds2def.config即可。 ... 阅读详情

相关推荐

APP抓包-代理转发绕过反代理+Xposed绕过证书校验

而这里的牛牛不止设置了反代理还设置了证书校验,一闪而过的三个数据包就是在校验证书。而proxifier工具的转发机制获取的是网络接口出口数据,相当于是在网络接口设代理。这个时候就可以在夜神打开牛牛开始抓包了,打开牛牛可以看到proxifier有夜神流量通过。关闭代理之后牛牛就正常了,可恶的牛牛啊,这样我没办法抓包啊,怎么办啊。模拟器开启代理,burp开启监听。打开牛牛app,牛牛不在报错。牛牛app检测的是系统代理,也就是在模拟器或手机上设置的代理。再在浏览器下载两个模块,在夜神安装,用来屏蔽证书校验。

xiaoheizi的博客 7530

poj-1470 Closest Common Ancestors(最近公共祖先lca+Tarjan离线)

Description Write a program that takes as input a rooted tree and a list of pairs of vertices. For each pair (u,v) the program determines the closest common ancestor of u and v in the tree. The close...

Kuguotao的博客 416

SAP 财务快速记账之—G/L Item Fast Entry

SAP FICO 运维解决方案

lijinbao171022的博客 1646

poj1470 Closest Common Ancestors

Closest Common Ancestors Time Limit: 2000MS   Memory Limit: 10000K Total Submissions: 13821   Accepted: 4483 Description Write a program that takes as input a rooted tr

喵呜的Blog 983

从SD更新字库到FLASH,再用LCD显示

用Flash当字库存储载体。思路是先将要用到的字库文件存在SD卡,然后存储到Flash,LCD显示时候从Flash中读取 还挺顺利的,移植的原子的程序,自己稍加修改,主要是我的液晶屏函数,Flash读写函数,还有存储文件的flash地址不一样。一晚上搞定,大小字体都OK。挺高兴哈哈。这几天忙工作事情有点耽搁了学习进展嘿嘿 在text.c的showstr函数中char的字体颜色随意设置的,可以显...

weixin_30505751的博客 914

智能车新手必看:如何用PID和差速转弯让小车跑得更稳(附代码示例)

本文详细介绍了智能车控制系统中PID算法和差速转弯的实现方法,包括位置式与增量式PID的选择、参数整定技巧以及编码器反馈的关键作用。通过代码示例和实战经验,帮助新手快速掌握智能车稳定行驶的核心技术,提升赛道表现。

mmm90的博客 122

POJ 1470 Closest Common Ancestors

最近公共祖先:在线算法和离线算法。 离线算法(Tarjan): 伪代码如下: 注意:  存储树的时候存储的是单向边,所以checked[u] = true 写在中间不会出现死循环, 这样可以避免重复计算公共祖先。 如果存储的树是双向边的话,就必须写在前面,这样子可以避免死循环,双向边的情况如下 但是这道问题确实统计公共祖先的次数的,因此如

智障 1349

YOLOv11改进 | 损失函数改进篇 | MPDIoU、InnerMPDIoU助力细节涨点(二次创新 + 代码解析)

本文为读者详细介绍了YOLOv11模型的最新改进,带来的改进机制是最新的损失函数MPDIoU和融合了最新的Inner思想的InnerMPDIoU(效果打爆之前的所有的损失函数提升检测精度和处理细节方面的作用。通过深入探讨MPDIoU和InnerMPDIoU(全网首发)的工作原理和实际代码实现,本文旨在指导读者如何将这些先进的损失函数技术应用到YOLOv11模型中,以提高其性能和准确性。文章内容涵盖从理论基础、代码实现,到实际教你如何添加本文的机制到你的模型中。

Snu77的博客 4023

poj1470-Closest Common Ancestors(LCA)

Closest Common Ancestors Time Limit:2000MS     Memory Limit:10000KB      Description Write a program that takes as input a rooted tree and a list of pairs of vertices. For each pair (u,v) the pro

AC之路 1407

从win系统远程使用服务器中的nsight system、nsight compute

本文介绍了如何在Windows系统中远程使用服务器上的Nsight System和Nsight Compute工具。主要内容包括:1)双系统同步安装相同版本的Nsight工具,配置环境变量;2)命令行生成profile文件或直接运行分析;3)Windows远程连接服务器的配置方法;4)解决权限问题的具体方案,如修改文件夹权限或调整NVIDIA驱动配置。文章提供了详细的安装步骤和常见问题解决方案,适用于需要进行GPU性能分析和调试的开发人员。

Justinyh的博客 401

DeerFlow 系列教程 第十四篇 | IM 渠道集成——让 DeerFlow 接入飞书、企微、Slack、Telegram

DeerFlow 系列教程 第十四篇本篇教程继续,全面剖析 DeerFlow 的 IM 渠道集成方案。我们将深入理解 Channel 抽象层设计、MessageBus 消息总线机制、ChannelManager 调度循环、四大 IM 平台(飞书、企业微信、Slack、Telegram)的适配实现,以及从 IM 消息到 Agent 响应再到 IM 回复的完整消息流转过程。

weixin_43674738的博客 415

POJ 1470 Closest Common Ancestors - Tarjan

POJ 1470 Closest Common Ancestors Wiki 上的 Tarjan 算法, Tarjan is an offline algorithm http://en.wikipedia.org/wiki/Tarjan's_off-line_lowest_common_ancestors_algorithm function TarjanOLCA(u) Ma

bachelorchen的专栏 500

扩充两个三维体积:ITK实现

在医学图像处理中,经常需要进行 3D 体积的操作,比如合并、分割等。而 ITK (Insight Segmentation and Registration Toolkit) 是一个常用的开源库,可以用于实现各种医学图像处理算法。这篇文章将介绍如何使用 ITK 实现扩充两个三维体积的操作。不过以上代码已经足够简单明了地演示了如何使用 ITK 实现扩充两个三维体积的操作。首先,我们需要准备两个三维体积的数据。这里假设这两个体积大小相同,并且已经加载到内存中了。来读取和保存体积数据,使用了。

CodeVorter的博客 204

[POJ 1470]Closest Common Ancestors[离线LCA]

题目链接:[POJ 1470]Closest Common Ancestors[离线LCA] 题意分析: 给出多个查询,查询点u和v的最近公共祖先。输出每个点作为最近公共祖先在查询中出现的次数,0次的不输出。 解题思路: 离线LCA,需要用到tarjan。 和普通的tarjan差不多。多了两样东西: 1.u - > v回溯的时候,更新v的祖先为u 2.在递归结尾,检查查询。 个人感

闲停 693

VC中sqlite的使用

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

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【LCA最近公共祖先】 poj1470 Closest Common Ancestors

It's a shame that I have wasted too much time on it... But it's just a simple LCA problem, and we can use tarjan algorithm(O(n+q)) to solve it... I have code a array name "head2" to "head" without n

When you go away 704

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

poj 1470 Closest Common Ancestors 离线算法Tarjan求LCA

DescriptionWrite a program that takes as input a rooted tree and a list of pairs of vertices. For each pair (u,v) the program determines the

kongming_acm的专栏 679

数学建模模型总结

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

【POJ 1470】 Closest Common Ancestors

【题目链接】          点击打开链接【算法】          离线tarjan求最近公共祖先【代码】         #include &lt;algorithm&gt; #include &lt;bitset&gt; #include &lt;cctype&gt; #include &lt;cerrno&gt; #include &lt;clocale&gt; #include &lt...

even_bao的博客 280

【LCA基础】poj 1470 Closest Common Ancestors

LCA裸题

Gzbgreat的博客 467

POJ 1470 Closest Common Ancestors (Tarjan)

Closest Common Ancestors Time Limit: 2000MS   Memory Limit: 10000K Total Submissions: 12745   Accepted: 4162 Description Write a program that takes as input a rooted tree a...

weixin_34409703的博客 103

POJ 1470 - Closest Common Ancestors (Tarjan)

基础,关于Tajan算法解析:https://blog.youkuaiyun.com/creatorx/article/details/70739834(????一下!) 题目地址 题目大意: Tarjan模板题,找到一对查询顶点的LCA(最近公共祖先)       解题思路就是上面的算法解析 代码: #include<iostream> #include<c...

weixin_30689307的博客 174

POJ---1470- Closest Common Ancestors

Language: Default Closest Common Ancestors Time Limit: 2000MS   Memory Limit: 10000K Total Submissions: 17367   Accepted: 5573 Description Write a program that takes

不会吃鱼的喵 555

POJ 1470 Closest Common Ancestors LCA离线Tarjin算法

http://poj.org/problem?id=1470 题意:给定一颗有根树,并且有Q次询问,格式是(u,v),求任意一次询问的两个结点的最近公共祖先。 算法:裸的LCA ,这是LCA的第一题,首先说下LCA离线Tarjin算法,其实质就是dfs +并查集。首先将所有的查询都先记录下面(因为是离线算法),然后就是从根结点对树进行一次dfs,复杂度为O(E) ,注意树用邻接矩阵存储。当

Chris_Home 642

POJ 1470 Closest Common Ancestors (LCA 离线算法)

Closest Common Ancestors Write a program that takes as input a rooted tree and a list of pairs of vertices. For each pair (u,v) the program determines the closest common ancest...

zhe 264

POJ 1470 Closest Common Ancestors【LCA Tarjan】

#题意:给定若干有向边,构成有根数,给定若干查询,求每个查询的结点的LCA。分析:还是很裸的tarjan的LCA。 这题我真的要吐槽!!调试了好久啊!!不是MLE就是RE。。。。 查询数量没给,所以要用矩阵来存,这样还可以避免重复。 给边的时候不知道会不会有重复的点,所以讲道理应该用vector保存。 getchar。。。我不知道为什么会RE。。。 其实ance数组可以不用的,只要每次处理子树的时

Tuesday 410

poj1330Nearest Common Ancestors 1470 Closest Common Ancestors(LCA算法)

LCA思想:http://www.cnblogs.com/hujunzheng/p/3945885.html 在求解最近公共祖先为问题上,用到的是Tarjan的思想,从根结点开始形成一棵深搜树,非常好的处理技巧就是在回溯到结点u的时候,u的子树已经遍历,这时候才把u结点放入合并集合中,这样u结点和所有u的子树中的结点的最近公共祖先就是u了,u和还未遍历的所有u的兄弟结点及子树中的最...

aipiannian6725的博客 187
下一篇: poj 3422:Kaka's Matrix Travels(最小费用最大流)
Ac_Ops
博客等级 码龄15年 4粉丝 5原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值