hdu5372 离散化+树状数组

Android开发工程师(IOT)面试指南与参考答案 【摘要】绿联科技招聘Android开发工程师(IOT方向),要求5年以上Android开发经验,精通Kotlin/Java,熟悉IOT设备交互及跨平台开发。岗位职责包括客户端开发维护、技术调研及性能优化等。核心考察点包括:Kotlin协程在IOT低功耗场景的应用、多协议设备连接层设计、音视频性能优化及离线架构实现。重点技术涉及蓝牙Mesh群控、BLE功耗优化及ReactNative混合开发。需具备GooglePlay合规经验,熟悉Android13+权限管理,并能提供量化性能优化案例。 阅读详情

这个题离散化有点蛋疼。。。

代码:

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<string>
#include<iomanip>
#pragma comment(linker, "/STACK:1024000000,1024000000")
#include<vector>
#include<set>
#include<map>
#include<queue>
#include<list>

using namespace std;
typedef long long LL;
typedef unsigned long long ULL;

#define rep(i,k,n) for(int i=(k);i<=(n);i++)
#define red(i,k,n) for(int i=(k);i>=(n);i--)
#define sqr(x) ((x)*(x))
#define clr(x,y) memset((x),(y),sizeof(x))
#define mod 1000000007
#define MAX(a,b) ((a)>(b)?(a):(b))
#define MIN(a,b) ((a)>(b)?(b):(a))
const int maxn = 400010;

struct opp
{
    bool type;
    int de;
} op[200010];

int a[maxn],n,N,acnt;

int r[maxn];

bool cmp(int x,int y)
{
    return a[x]<a[y];
}

void dis()
{
    rep(i,1,acnt)r[i]=i;
    sort(r+1,r+1+acnt,cmp);
    int pre=a[r[1]];
    N=a[r[1]]=1;
    rep(i,2,acnt)
    {
        if(a[r[i]]==pre)a[r[i]]=a[r[i-1]];
        else
        {
            pre=a[r[i]];
            N=a[r[i]]=a[r[i-1]]+1;
        }
    }
}

struct Bit
{
    int bit[maxn];
    void cl()
    {
        clr(bit,0);
    }
    void add(int k,int v)
    {
        for(int i=k; i<=N; i+=i&-i)bit[i]+=v;
    }
    int sum(int k)
    {
        int ret=0;
        for(int i=k; i>0; i-=i&-i)ret+=bit[i];
        return ret;
    }
} BL,BR;

int main()
{
//#define LOCAL
#ifdef LOCAL
    freopen("e:\\read.txt","r",stdin);
    //freopen("e:\\write.txt","w",stdout);
#endif
    int ii=0;
    while(~scanf("%d",&n))
    {
        acnt=0;
        rep(i,1,n)
        {
            int t;
            scanf("%d",&t);
            op[i].type=t;
            if(t)
            {
                scanf("%d",&op[i].de);
            }
            else
            {
                acnt+=2;
                scanf("%d",&t);
                a[acnt-1]=t;
                a[acnt]=t+acnt/2;
            }
        }
        dis();
        BL.cl();
        BR.cl();
        int s=1;
        printf("Case #%d:\n",++ii);
        rep(i,1,n)
        {
            if(op[i].type)
            {
                int k=op[i].de;
                BL.add(a[k*2-1],-1);
                BR.add(a[k*2],-1);
            }
            else
            {
                printf("%d\n",BR.sum(a[2*s])-BL.sum(a[2*s-1]-1));
                BL.add(a[2*s-1],1);
                BR.add(a[2*s],1);
                s++;
            }
        }

    }


    return 0;
}


Could not find a package configuration file provided by “boost_signals“ gmapping/slam_gmapping/gmapping/CMakeLists.txt:14 (find_package)问题在14行,注释该行。,该语句的用以为告诉项目Boost库文件所在。 阅读详情

相关推荐

【TM1650】STM8S TM1650芯片控制程序

以下为.h文件: #ifndef __TM1650_I2C_H #define __TM1650_I2C_H #include "stm8s.h" #include "stm8s_gpio.h" #include "tim1.h" #include "usart2.h" #include &lt;iostm8s103f3.h&gt; #include &lt;intrinsics....

cxw312864660的博客 1万+

hdu 5372 Segment Game(树状数组)

题目链接:hdu 5372 Segment Game 因为线段长度是递增的,不会出现后面的线段被前面的线段完全覆盖,所以只要分别计算[1,l-1]之间有多少个左端点,[1,r]之间有多少个右端点,想减即可。 #include #include #include using namespace std; const int maxn = 2 * 1e5 + 5; #def

不慌不忙、不急不躁 946

阿里云大模型ACP认证模拟考试(一)

摘要:在阿里云大模型高级工程师 ACP 认证暂无真题题库的现状下,模拟题具有重要意义。其依照真实考试设计,涵盖题型、题量与分值分布,助力考生熟悉考试框架,合理分配答题时间精力,提升效率。同时,模拟题紧扣官方课程,能帮助考生精准定位知识盲点,如大模型架构原理和通义千问应用实践等重点内容,以便针对性完善知识体系。此外,通过练习模拟题,考生可掌握不同题型的解题思维与技巧,快速洞察复杂题目本质,提高答题准确率。

davidkorhenn的博客 4744

[HDU 5372] Segment Game (树状数组)

HDU - 5372 给定若干条长度为 1、2、3…递增的线段 每次向数轴上添加一条线段,或者删除一条线段 问每次添加的线段能完全覆盖多少条已有线段 这题卡CDQ分治,而CDQ分治没有用到长度递增这个条件 之前的线段与正在添加的线段的位置情况只有三种 之前的线段 [l0,r0][l_0, r_0], 当前线段 [l,r][l,r] 1. l0<ll_0<l,则必有 r0<rr_

MisDeer's blog 383

FPGA_AD9361实战

1.参考网站。

Pual_Georg的博客 750

PaddleOCR在医疗票据识别中的实战:从部署到业务字段提取

本文详细介绍了PaddleOCR在医疗票据识别中的实战应用,重点阐述了其离线部署方案与PP-OCRv3模型选型优势。针对医疗票据敏感数据不出本地的合规要求,文章提供了从环境搭建、模型配置到核心字段提取策略的完整流程,并分享了性能优化与系统集成的实践经验,有效解决了医疗票据自动化录入的难题。

weixin_29271053的博客 238

HDU 5372 线段树

点击打开链接 题意:两个操作,0是添加一段线段,然后问添加的这段线段完全覆盖之前的多少个线段,然后0是将第b个添加的线段删除 思路:对于一个当前添加的线段来说,它能完全覆盖的线段个数就等于大于等于这个线段的左端的数量减去大于右端点的线段数量,因为题目中有个至关重要的条件那就是每次添加的线段的长度是越来越大的,那么对于之前的线段只有大于等于左端点的才可以,这么说吧,之前的线段的左端点比当前小的,

Dan__ge的博客 1608

稀疏阵列选型指南:互质阵、嵌套阵、MRA,谁才是你项目里的‘性价比之王’?

本文深入探讨了稀疏阵列技术中的互质阵、嵌套阵和MRA三大架构的工程化选型策略,重点分析了它们在DOA估计、自由度、旁瓣抑制和计算复杂度等核心指标上的表现。通过实际案例和配置示例,为智能天线、声学定位和毫米波雷达等应用场景提供技术选型指南,帮助研发团队在硬件成本与性能之间找到最佳平衡点。

weixin_42525005的博客 489

hdu5372(2015多校7)--Segment Game(树状数组)

题目链接:点击打开链接 题目大意:存在一个横轴,有n此操作,0代表在横轴上新增加一条边,1代表删除1条边,其中0 x代表在从x位置开始增加一条边,当第i次加边时,边的长度为i,1 x代表删除第x次加的边。问每当新加入一条边是,这条边能完整的包含几条边。 为什么当时没做这个题,,,已经泪奔,,, 问的是新加的那条边能覆盖多少条边,统计已加入的边的左端点大于或等于新边左端点的个数x,统计已加入的

随风的专栏 1030

SAP固定资产原值与净值取值逻辑全解析:从数据表到ABAP实战

在企业资源计划(ERP)系统中,固定资产的价值管理是财务会计的核心模块,其关键在于准确核算资产原值与净值。从技术原理上看,这涉及对资产全生命周期业务(如购置、折旧、转移、报废)的财务建模,以及底层数据表(如ANLC、ANEP)的精准关联与计算。掌握这一逻辑的技术价值在于,能够确保财务报表数据的准确性,满足合规性要求,并为管理决策提供可靠依据。在SAP ECC或S/4HANA系统的应用场景中,ABAP开发者与财务顾问常需通过编写报表程序,从复杂的数据结构中提取资产价值信息。本文聚焦于SAP资产会计模块,深入剖

weixin_30984001的博客 395

基于 STM32 的乒乓球发球机控制系统设计与实现

乒乓球发球机是一种能够按照预设参数自动、连续发出乒乓球的训练设备。本系统以 STM32F103C8T6 为主控核心,通过控制实现球速调节、实现落点与旋转方向控制、实现出球节奏控制,并配合 OLED 显示与按键人机交互,实现速度、频率、落点、旋转四大参数的可调发球训练。

weixin_42300449的博客 211

HDU 5372 Segment Game 树状数组

链接 Segment Game Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 273    Accepted Submission(s): 48 Problem Description Lillian

九野的博客 1581

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

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

HDU 5372 Segment Game (树状数组+离散化)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5372 题面: Segment Game Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 968    Accepte

David_Jett 855

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

hdu 5372 离散化加树状数组

注意离散化的时候是对左右端点一起离散化的,所以maxn要开成2倍的~#include<bits/stdc++.h> using namespace std; #define ll long long const int maxn=2e5+10; struct node{ int op,l,r; }a[maxn]; int c1[maxn<<1],c2[maxn<<1]; int lowbit

yp_2013的博客 417

HDU 5372 Segment Game(2015 Multi-University Training Contest 7 1004)

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5372 题意: 给出n个操作,每个操作有a, b两个数。a=0表示在数轴上放一条端点分别是b和c的线段,c=b+(这次操作是第几次放置线段的操作)。a=1表示删掉第b次放置线段操作所放置的线段。每次a=0时要求输出要插入的线段完全覆盖了多少条线段。 思路: 由于数据范围比较大,先读入所有

entalent的专栏 548

HDU 5372 Segment Game (MUT#7 树状数组+离散化)

【题目链接】:click here~~ 【题目大意】: 题意:两种操作,添加线段和删除线段,第i次添加时告诉线段起点并且要添加长度为i的线段,删除第i次添加的线段,问每次添加后有多少线段是落在当前要画的线段内部的。 【思路】:比赛的时候居然直接无视了这道题,赛后看了一下,感觉要用到树状数组,有一种前后互相影响的样子,昨天想了一下午,加上昨天晚上,总算是搞明白了,因为每次画的线段的

herongwei 的 BLOG 1158

HDU 5372 (树状数组 离散化)

Segment Game Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1688    Accepted Submission(s): 523 Problem Description Lillian is a c

morejarphone~ 520

hdu 5372 Segment Game(树状数组+离散化)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=5372 题意:有两种操作,输入a b,①a==0,插入第i条线段[b,b+i],输出[b,b+i]内有多少条完全包含于[b,b+i]的线段②a==1,删除插入的第b条线段。 分析:由于插入的线段长度是递增的,那么就不存在包含[b,b+i]的线段。那么完全包含于[b,b+i]的线段的数目=右端点小于等于b

w20810的专栏 660

HDU 5372 Segment Game(离散化+树状数组)

Problem Description Lillian is a clever girl so that she has lots of fans and often receives gifts from her fans. One day Lillian gets some segments from her fans Lawson with lengths o...

abvfx86024的专栏 133

树状数组,离散化,突破口(Segment Game,HDU 5372)

树状数组讲解: http://blog.youkuaiyun.com/int64ago/article/details/7429868 经常会遇到一些题目,是一些经典问题的变化,但是各种经典算法无法很好的解决这个问题。 这时我们应该观察题目是不是有特殊的地方,我们的经典算法是否只能解决更一般的问题。 特殊和一般在哪些地方有差别,哪些地方条件放宽了,哪些地方要求高了。 然后从这些差别入手,或许

xl2015190026的博客 321

反向树状数组 + 离散化 HDU 5372

Segment Game Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 2086    Accepted Submission(s): 634 Problem Description Lillian is a c

LinzhiQQQ的博客 535

HDU 5372 Segment Game (树状数组+离散化)*

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5372 #include&lt;bits/stdc++.h&gt; #pragma comment(linker,"/STACK:1024000000,1024000000") using namespace std; #define debug puts("YES"); #define rep(...

满月照亮的路 228

Hdu 5372 Segment Game (树状数组)

题目链接:   Hdu 5372 Segment Game 题目描述:   有一段区间,对这段区间有两种操作。1:插入操作,第i次插入长度为i的线段,并询问被当前线段完全覆盖的线段数目。                    2:删除操作,删除第b次插入的线段。 解题思路:   对于当前新插入线段,只需要统计已插入线段中右端点小于该线段右端点的数目,以及左端点小于该线段做端点的数目,两...

weixin_30817749的博客 100

hdu 5372 Segment Game (树状数组+离散化)

参考:http://blog.youkuaiyun.com/queuelovestack/article/details/47446007 题意:给你n次操作,每次增加线段或者删除第i次增加操作中增加的线段,问你每次增加操作中,所增加的线段会覆盖多少条完整的线段。 题解:对于新插入的线段,查询有多少个线段左端点大于等于该线段的左端点。 再查询有多少个线段的右端点大于该线段右端点, 两者之差就是答案

Slow_Wakler的专栏 728

HDU 5372 Segment Game - 离散化&树状数组

题目描述 表示看错题目的一小部分,wa了两个小时!!! 题目大意: 有 n 个操作,每次要么插入一条线段,要么删除一条已存在的线段,其中第 i 次插入的线段的长度为 i。 对于每次插入,输出当前插入的线段能完整覆盖多少条线 段。 1 ≤n≤ 700000。 Source:2015 Multi-University Training Contest 7 ...

weixin_30640291的博客 145
上一篇: 处理区间问题之树状数组与莫队算法
下一篇: CF round 314 E
窝嘞割草
博客等级 码龄12年 10粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值