首页 > 其他分享 >2024.8.24-美团

2024.8.24-美团

时间:2024-08-29 16:17:17浏览次数:5  
标签:24 arr right return 2024.8 美团 tree seg int

第3题-塔塔商店

线段树,因为需要返回区间最大值的id,所以对于建树、更新、检索部分需要进行修改

#include<bits/stdc++.h>

using namespace std;

#define lc p<<1
#define rc p<<1|1
const int N = 1e5 + 5;
int c[N];
struct segtree{
    struct node{
        int l, r, id;
    }tree[N*4];
    vector<int>w;
    void init(int m, vector<int>& d) {
        w.resize(m);
        w = d;
    }

    int compare(int x, int y) {
        if (w[x] > w[y] || (w[x] == w[y] && x < y))
            return x;
        return y;
    }

    void build(int p, int l, int r){
        tree[p] = {l, r, l};
        if(l == r) {
            return ;
        }
        int m = (l + r) >> 1;
        build(lc, l, m);
        build(rc, m + 1, r);
        tree[p].id = compare(tree[lc].id, tree[rc].id);
    }

    //单点修改
    void update(int p, int x, int k){
        if(tree[p].l == x && tree[p].r == x){
            tree[p].id = x;
            w[x] = k;
            return ;
        }
        int m = (tree[p].l + tree[p].r) >> 1;
        // cout<<lc<<" "<<x<<endl;
        if(x <= m) update(lc, x, k);
        else update(rc, x, k);
        tree[p].id = compare(tree[lc].id, tree[rc].id);
    }

    //区间查询
    int query(int p, int l, int r){
        if(l > tree[p].r || tree[p].l > r) return -1;
        if(l <= tree[p].l && tree[p].r <= r)
            return tree[p].id;
        int m = (tree[p].l + tree[p].r) >> 1;
        int left = -1, right = -1;
        if(l <= m) left = query(lc, l, r);
        if(r > m) right = query(rc, l, r);
        if(left == -1) return right;
        if(right == -1) return left;
        return compare(left, right);
    }
}seg[2];


int main(){
    int n, m;
    cin>>n>>m;
    for(int i = 1; i <= m; i ++) cin>>c[i];
    vector<int> arr[2], B(m + 2);
    arr[0].resize(m + 2, -1);
    arr[1].resize(m + 2, -1);
    for (int i = 1; i <= m; ++i) {
        cin >> B[i];
        arr[B[i]][i] = c[i];
    }
    for (int i = 0; i < 2; ++i) {
        seg[i].init(m + 1, arr[i]);
        seg[i].build(1, 1, m);
    }
    while(n --){
        int x, y, t, k;
        cin>>x>>y>>t>>k;
        while(k --){
            int u = seg[t].query(1, x, y);
            int value = seg[t].w[u];
            if(value == -1){
                cout<<-1<<" ";
                break;
            }
            else cout<<u<<' ';
            seg[t].update(1, u, -1);
        }
        cout<<endl;
    }

    return 0;
}

标签:24,arr,right,return,2024.8,美团,tree,seg,int
From: https://www.cnblogs.com/voids5/p/18386896

相关文章

  • 24.5.0:HOOPS Publish SDK
    向您的应用程序添加3DPDF导出等功能通过使用HOOPSPublishSDK向您的工程应用程序添加交互式3DPDF、HTML和标准CAD格式导出(包括STEPAP242、JT10、IGES、STL和3MF),增强您的工程应用程序。用于创建丰富工程文档的3DCAD发布SDKHOOPSPublishSDK可帮助开发......
  • GEE 更新和优化:利用GEE在线处理1985-2024年NDVI、EVI、SAVI、NDMI等指数归一化教程!(Lan
    简介本次的归一化教程,优化了数据去云,预处理等过程,同事将landsat5/7/8集合分别进行了数据整合,也就是原始波段的处理,从而我们可以调用1985-至今任何一个时期的影像进行归一化处理。具体的原文介绍请看原始的博客原始博客利用GEE(GoogleEarthEngine)在线处理NDVI、EVI、SAVI......
  • iOS贷超APP上架心得分享2024
    贷超APP从0到1上架苹果商店全过程。一.关于指引3.2.1-业务-其他业务模式问题-可接受*营业执照副本和政府网站的直接链接(营业执照)-我们目前的业务模式是XXX*应用程序和服务的条款和条件。-附件是XXX*如果发生争议,你的应用和服务提供什么解决机制?在这种情况下你的责......
  • ECCV24|全局式SfM最新SOTA,GLOMAP重新定义SfM!
    前言 ETH&微软最新开源-全局式GLOMAP,它与以前的全局SfM系统相比,其核心区别在于全局定位步骤。不是先执行不适定的平移平均然后进行全局三角测量,而是进行联合相机和点位置估计。GLOMAP不仅在鲁棒性和准确性方面达到增量式COLMAP系统相当或更优的水平,同时还比COLMAP快几个数量级。......
  • 大厂分布式ID方案之美团Leaf
    分布式ID必须保证以下特性:全局唯一有序性:便于索引高并发可用不依赖中心认证安全性目前大厂的分布式ID方案基本都是基于号段式,号段模式可以理解成从数据库批量获取ID,然后将ID缓存在本地,以此来提高业务获取ID的效率。例如,每次从数据库获取ID时,获取一个号段......
  • 【IEEE出版】2024博鳌新型电力系统国际论坛——电力系统与新能源技术创新论坛(NPSIF 20
     2024博鳌新型电力系统国际论坛——电力系统与新能源技术创新论坛将于2024年10月30-11月1日于海南博鳌举办。重要信息大会网站:https://ais.cn/u/VJNZb2【投稿参会】截稿时间:以官网信息为准主办单位:中国南方电网有限责任公司承办单位:博鳌新型电力系统协会协办单位南方......
  • 【同济大学机械与能源工程学院和卡尔斯鲁厄理工学院生产技术学院联合主办 | EI核心,Sco
    重要信息大会网站:https://ais.cn/u/umyqQn【投稿参会】截稿时间:以官网信息为准2024年10月30-11月1日,中国上海论文出版:征稿主题:新能源汽车制造、机器人集群制造、软件定义制造等多个可持续制造技术领域!组织单位......
  • 《2024智慧超矫技术白皮书》:金属板材矫平行业的技术革命
    嘿,金属板材矫平行业的伙伴们!玛哈特集团有大新闻——我们发布了《2024智慧超矫技术白皮书》,这是我们对行业技术革命的一次大胆宣言!01行业趋势与技术创新工业4.0不是未来,而是现在。我们的客户比以往任何时候都更懂行,他们在下单前会在网上做足功课。这意味着,要想在市场中脱颖而......
  • 2024年睿抗机器人大赛智能侦查省赛(预选赛)总结中篇
    2024年睿抗机器人大赛智能侦查省赛(预选赛)总结中篇引言通过上篇的分析,我们已经完成了睿抗机器人大赛省赛任务书的前两个部分,关于如何在win11下搭建yolov5环境并将其运用,后续我们会继续跟进,也欢迎大家留言,现在我们将继续分析省赛任务书余下的部分。任务3:ROS程序题任务描述......
  • AWTF2024A Moving Slimes 题解
    发现史莱姆不合并也不会影响答案,所以就不用考虑合并了。这样处理之后,史莱姆的移动可以看作是受到与其不在同一位置的史莱姆的吸引所完成的,每只史莱姆可以给其他史莱姆一个单位的吸引力。因为每只史莱姆提供的吸引力是恒定的,所以考虑把吸引力放在它们的重心上,设\(pre_i\)表示坐......