hdu 1540 Tunnel Warfare(线段树区间合并)

Unity开发AR之Vuforia-MultiTarget笔记 在增强现实(AR)技术蓬勃发展的今天,越来越多的开发者开始探索如何将AR应用于各种场景中。Vuforia作为一个领先的AR开发平台,为开发者提供了强大的工具和功能,使得创建AR体验变得更加简单和直观。本文将为您介绍Vuforia的基本概念、特点,以及如何配置和使用MultiTarget功能,旨在帮助您更加深入地理解Vuforia SDK,并在您的项目中有效地应用。Vuforia是一个由PTC开发的增强现实SDK,它提供了丰富的功能,使团队能够在各种设备上创建互动的AR应用。 阅读详情


hdu 1540 Tunnel Warfare


记录每个节点的最大左连续值、最大右连续值、最大连续值,向上更新的是常规的区间合并处理方式

关键是想到如何去查询,如果查询节点落在左儿子节点的右连续段中,则代表右儿子节点的左连续段也要算上,同样的如果查询节点落在右儿子的左连续段中,则代表左儿子的右连续段也要算上


#include<cstdio>
#include<cstring>
#include<stack>
using namespace std;
#define MAXN 50005
#define lch p<<1
#define rch p<<1|1
#define mid (t[p].l+t[p].r)>>1
struct node
{
    int l,r;
    int lmx,mx,rmx;
    int getlen() {return r-l+1;}
}t[MAXN*4];
void construct(int l,int r,int p)
{
    t[p].l=l,t[p].r=r;
    t[p].lmx=t[p].rmx=t[p].mx=t[p].getlen();
    if(l==r) return ;
    int m=mid;
    construct(l,m,lch);
    construct(m+1,r,rch);
}
int max(int a,int b) {return a>b?a:b;}
void pushup(int p)
{
    t[p].mx=max(t[lch].mx,t[rch].mx);
    t[p].mx=max(t[p].mx,t[lch].rmx+t[rch].lmx);
    
    t[p].lmx=t[lch].lmx;
    if(t[lch].mx==t[lch].getlen()) t[p].lmx+=t[rch].lmx;
    
    t[p].rmx=t[rch].rmx;
    if(t[rch].mx==t[rch].getlen()) t[p].rmx+=t[lch].rmx;
}
void modify(int x,int p,int v)
{
    if(t[p].l==t[p].r)
    {
        t[p].lmx=t[p].rmx=t[p].mx=v;
        return ;
    }
    int m=mid;
    if(x<=m) modify(x,lch,v);
    else modify(x,rch,v);
    pushup(p);
}
int query(int x,int p)
{
    if(t[p].l==t[p].r||
       t[p].mx==0||
       t[p].mx==t[p].getlen())
        return t[p].mx;
    
    int m=mid;
    if(x<=m)
    {
        if(t[lch].r-t[lch].rmx+1<=x)
            return query(x,lch)+query(m+1,rch);
        else return query(x,lch);
    }
    else
    {
        if(t[rch].l+t[rch].lmx-1>=x)
            return query(x,rch)+query(m,lch);
        else return query(x,rch);
    }
}
stack<int> stc;
int main()
{
    int n,m,x;
    char op[3];
    while(scanf("%d%d",&n,&m)!=EOF)
    {
        construct(1,n,1);
        while(!stc.empty()) stc.pop();
        while(m--)
        {
            scanf("%s",op);
            if(op[0]=='D')
            {
                scanf("%d",&x);
                modify(x,1,0);
                stc.push(x);
            }
            else if(op[0]=='Q')
            {
                scanf("%d",&x);
                printf("%d\n",query(x,1));
            }
            else
            {
                if(!stc.empty())
                {
                    modify(stc.top(),1,1);
                    stc.pop();
                }
            }
        }
    }
    return 0;
}


使用OpenGL加载和显示DXF格式的3D模型文件编程 这样,我们就完成了使用OpenGL加载和显示DXF格式的3D模型文件的编程。通过实现加载函数和绘制回调函数,我们能够读取DXF文件的数据并使用OpenGL绘制出来。请注意,这只是一个简单的例子,仅涵盖了基本的加载和显示功能。在本文中,我们将探讨如何使用OpenGL编程加载和显示DXF(Drawing Exchange Format)格式的3D模型文件。DXF是一种通用的CAD(计算机辅助设计)文件格式,常用于存储和交换2D和3D图形数据。使用OpenGL加载和显示DXF格式的3D模型文件编程。 阅读详情

相关推荐

ET篇:Google.Protobuf的学习(理解基本的使用流程)

据我目前所知,ET使用的数据交换协议是Google.Protobuf,所以今天就来学习一下,但是网上许多人都是以高下立判的方式讲解的,对新手小白很不友好,所以我今天就以纯小白的视角和大家一起学习 学习环境: .NET Core2.2 .NET Framework 4.7.2 Rider protobuf-csharp-3.7.0-rc-2 Google.Protobuf简介 prot...

设计师养成记 3563

HDU1540 Tunnel Warfare(线段树区间合并)

HDU1540  Tunnel Warfare(线段树区间合并)During the War of Resistance Against Japan, tunnel warfare was carried out extensively in the vast areas of north China Plain. Generally speaking, villages connected by...

GYH0730的博客 605

Miniconda3迁移(附图详细过程)

服务器上目录占满,想要将conda迁移到其他目录下的操作方法,详细教程。

2301_77554343的博客 6942

hdu 1540 Tunnel Warfare 【线段树 区间合并】

Tunnel WarfareTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Problem Description During the War of Resistance Against Japan, tunnel warfare was carried out exten

lh的博客 421

Python《打砖块》小游戏

Python《打砖块》小游戏!

PanDaoxi 1273

从零到一:RF-DETR如何通过神经架构搜索重塑实时目标检测的边界

RF-DETR通过创新的权重共享神经架构搜索(NAS)机制,重新定义了实时目标检测的技术边界。这项技术在COCO等基准测试中表现卓越,成为首个AP超过60的实时检测器,同时保持跨领域稳定性和高效推理速度。RF-DETR的动态架构调整能力使其能够适应从嵌入式设备到云端服务器的各种硬件环境,为工业质检、自动驾驶等场景提供灵活解决方案。

weixin_29061531的博客 468

hdu1540 Tunnel Warfare(线段树区间合并详解)

http://acm.hdu.edu.cn/showproblem.php?pid=1540 题意:给你一些村庄,D代表毁灭该村,R代表恢复该村,Q代表和x村相连的未被毁灭的村庄。 前两者明显就是单点更新了,查询的时用到了区间合并。 区间合并果然麻烦,连想带懂几乎花了我将近三天,不过好在做掉了。 思路:注释都在代码里了,适合入门。总的来说,增加了三个域ls, r

Iguodala的博客 774

STM32 移植FreeModbus详细过程

modbus是一个非常好的串口协议(当然也能用在网口上),它简洁、规范、强大。可以满足大部分的工业、嵌入式需求。 这里详细说下如何将freemodbus移植到stm32平台。我之前下载的版本是1.6,我会在我的下载链接里面加上1.6的freemodbus压缩包以及我已经移植好的stm32 for freemodbus版本。我上传的移植好的绝对没问题,经过多个板子测试。这里编译器使用的是keil5.28,单片机用的是STM32F103RCT6。 移植到VET6以及ZET6的话只需要改一下选择的芯片就好,改法:

qq_40305944的博客 8万+

hdu1540-Tunnel Warfare 线段树区间合并

Tunnel Warfare Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 9013    Accepted Submission(s): 3479 Problem Description During the

wangheng 353

YOLOv8 Neck改进:BiFPN双向特征金字塔网络解析与实践

本文详细介绍了如何在YOLOv8中集成BiFPN双向特征金字塔网络,包括原理解析、代码实现、配置文件修改和性能分析。BiFPN通过双向特征融合和加权特征机制,显著提升了多尺度目标检测的性能。希望通过本文的讲解,大家能够深入理解BiFPN的工作原理,并成功将其应用到自己的目标检测项目中。如果你有任何问题或建议,欢迎在评论区留言讨论!在下一篇文章中,我们将探讨YOLOv8的其他改进技术,包括注意力机制、新的损失函数等,敬请期待!

QQ_778132974的博客 988

Ubuntu 系统下安装 OpenClaw(原 Clawdbot)的详细指南

Ubuntu 系统下安装 OpenClaw(原 Clawdbot)的详细指南

Science prince的博客 3535

HDU-1540-Tunnel Warfare(线段树单点修改,区间合并)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1540 题目大意:给出n个村庄,m次操作,操作分为三种:D,Q,R D:炸毁pos位置的村庄。Q查询pos位置的村庄最多的联系村庄。R修好最近一个被炸毁的村庄 思路:线段树区间合并入门题。对于炸毁和修复的,将该点更新状态,维护区间左连续,右连续和中间连续合即可。 ACCode: #inclu...

永远鲜红の幼月的博客 207

Python爬虫实战:抓取统计数据并生成年度对比图表详解

国家统计局网站(静态HTML页面Excel文件JSON接口(部分新版API)我们将重点演示从统计公报页面抓取数据,结合解析Excel文件,实现多种数据格式爬取处理。本文从零开始搭建了一个爬取国家统计数据并制作年度对比图表的完整流程。读者可以根据实际需求调整爬取目标,丰富数据分析维度,甚至结合机器学习模型预测未来趋势。欢迎你在评论区留言分享你的爬虫实践,或提出改进建议!

2201_76125261的博客 1000

HDU1540:Tunnel Warfare(线段树区间合并)

Problem Description During the War of Resistance Against Japan, tunnel warfare was carried out extensively in the vast areas of north China Plain. Generally speaking, villages connected by tunnels la

ACM!荣耀之路! 9302

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

HDU-1540 Tunnel Warfare 线段树 区间合并

http://acm.hdu.edu.cn/showproblem.php?pid=1540 题意:  给出直线上一系列的村庄,如果相邻村庄都没有被破坏,  则两村庄是连接的,题目给出一系列的破坏操作,对指定号码的村庄进行破坏,  还有一系列的询问操作,询问与指定号码的村庄直接相连或间接相连的村庄有几个,  还有一个修复操作,是对最后破坏的村庄进行修复。  //线段树 定义三

菜鸟成长ing 896

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Tunnel Warfare HDU - 1540 线段树区间合并

During the War of Resistance Against Japan, tunnel warfare was carried out extensively in the vast areas of north China Plain. Generally speaking, villages connected by tunnels lay in a line. Except t...

why932346109的博客 194

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

hdu 1540/POJ 2892 Tunnel Warfare 【线段树区间合并】

Tunnel Warfare Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) 链接:hdu 1540        POJ 2892 Problem Description  During the War of Resistance Against Jap

Fighting! 2366

HDU - 1540 Tunnel Warfare(线段树+区间合并)

题目链接:点击查看 题目大意:给定n个村庄,初始化全部连接为一条直线,需要依次执行m个操作,D表示摧毁第i个村庄的连接,R表示恢复最后一 个被摧毁的村庄的连接,Q表示询问包括本身在内,与第i个村庄相连接的有多少个村庄(间接连接也算) 题目分析:这个题需要用到区间合并的思想,并且用线段树来实现,应该算是个裸题了,把pushup的板子套进线段树里就OK, 不过这个题的query函数比较难写,我...

Falcon的博客 488

HDU 1540 Tunnel Warfare/线段树区间合并

这个他配了图,很快就看懂了

m0_73843712的博客 219

hdu1540 Tunnel Warfare 线段树区间合并

Tunnel Warfare Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 6565    Accepted Submission(s): 2527 Problem Description During the

EventQueue的博客 482

HDU1540 Tunnel Warfare 线段树区间合并

HDU1540 Tunnel Warfare 线段树区间合并

htrdchh的博客 152

Tunnel Warfare(HDU1540+线段树+区间合并)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1540 题目: 题意:总共有n个村庄,有q次操作,每次操作分为摧毁一座村庄,修复一座村庄,和查询与询问的村庄相连接的城市数量。 思路:线段树+区间合并。 代码实现如下: 1 #include <set> 2 #include <map> ...

di6499的博客 138

HDU1540 Tunnel Warfare【线段树区间合并、平衡树】

题目链接 题意 有一段连续的序列[1,2,3,...,n][1,2,3,...,n][1,2,3,...,n],有3种操作 删除数字 KKK,KKK的两边断开 询问数字 KKK 所在的连续段的长度(若KKK被删除则长度为0) 回撤上一次删除操作 题解 有两种做法 线段树区间合并,记录区间的最长左连续段长度和最长右连续段长度 平衡树记录删除的结点,询问的答案就是 KKK的后继-前驱-1 #include<iostream> #include<sstream> #include&

qq_50554695的博客 190

HDU - 1540 Tunnel Warfare(线段树 - 区间合并)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1540 题意:给你n个村庄和m此操作,操作分三种 (1)摧毁一个村庄; (2)重建一个村庄; (3)查询村庄x左右一公有多少个连续的村庄没有被摧毁 思路:这个是线段树区间合并的一道题,设ml数组记录的是这个区间内左区间向右可以到达的最大的距离,mr数组记录的是这个区间内右区间向左可以到达的最大的距离,每...

qq_43423395的博客 165

HDU 1540 Tunnel Warfare(线段树区间合并)

Tunnel Warfare 题意:有nnn个村庄,如果对于村庄iii和jjj都存在,那么我们就称其关系为连续,然后会有三个操作: D&amp;ThickSpace;&amp;ThickSpace;XD\;\;XDX摧毁第XXX个村庄。 Q&amp;ThickSpace;&amp;ThickSpace;XQ\;\;XQX询问包含村庄XXX的最大连续村庄的长度。 R&amp;ThickSpace;...

Eternally831143的博客 308

hdu 1540 & poj 2892 Tunnel Warfare 线段树区间合并

基础线段树区间合并,详见代码 #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define lson l, mid, rt << 1 #define rson mid + 1,

uuuuuu 488
上一篇: noj 1560 Let Slimes Grow Up(线段树,lazy,暂未A)
下一篇: hdu 3397 Sequence operation(线段树,lazy,区间合并)
yjCola
博客等级 码龄14年 4粉丝 138原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值