POJ 2761 Feed the dogs——————区间第K大,主席树

苍穹外卖项目面试总结话术 美食速递这个项目最初是我参与制作的大创项目,是一款为中南学生提供校园外卖送至宿舍服务的软件,包含系统管理后台和小程序端两部分。其中系统管理后台主要提供给食堂内部员工使用,可以对食堂各个窗口、员工、订单、菜品等进行维护管理;小程序端可以在线浏览菜品、添加购物车、下单等,由学生兼职做跑腿送餐上门服务。这是个前后端分离的项目,我主要是负责后端的用户登录、员工管理,菜品管理,订单管理模块的编码实现。 阅读详情

Feed the dogs

Time Limit: 6000MS Memory Limit: 65536K
Total Submissions: 23591 Accepted: 7498

Description

Wind loves pretty dogs very much, and she has n pet dogs. So Jiajia has to feed the dogs every day for Wind. Jiajia loves Wind, but not the dogs, so Jiajia use a special way to feed the dogs. At lunchtime, the dogs will stand on one line, numbered from 1 to n, the leftmost one is 1, the second one is 2, and so on. In each feeding, Jiajia choose an inteval[i,j], select the k-th pretty dog to feed. Of course Jiajia has his own way of deciding the pretty value of each dog. It should be noted that Jiajia do not want to feed any position too much, because it may cause some death of dogs. If so, Wind will be angry and the aftereffect will be serious. Hence any feeding inteval will not contain another completely, though the intervals may intersect with each other.

Your task is to help Jiajia calculate which dog ate the food after each feeding.

Input

The first line contains n and m, indicates the number of dogs and the number of feedings.

The second line contains n integers, describe the pretty value of each dog from left to right. You should notice that the dog with lower pretty value is prettier.

Each of following m lines contain three integer i,j,k, it means that Jiajia feed the k-th pretty dog in this feeding.

You can assume that n<100001 and m<50001.

Output

Output file has m lines. The i-th line should contain the pretty value of the dog who got the food in the i-th feeding.

Sample Input

7 2
1 5 2 6 3 7 4
1 5 3
2 7 1

Sample Output

3
2

#include<cstdio>
#include<vector>
#include<iostream>
#include<algorithm>

using namespace std;
/*
求区间第k大
poj - 2104
*/

const int MAXN = 1e5+7;
int n, m, cnt, root[MAXN], a[MAXN], x, y, k;
struct node{int l, r, sum;} T[MAXN*40];
vector<int> v;
int getid(int x) { return lower_bound(v.begin(), v.end(), x)-v.begin() + 1;}

void update(int l, int r, int &x, int y, int pos) {// T[y] 是上一版本的, T[x] 是这一版本的
        T[++cnt] = T[y]; T[cnt].sum++; x = cnt;
        if(l == r) return ;
        int mid = (l+r)>>1;
        if(mid >= pos)  update(l, mid, T[x].l, T[y].l, pos);
        else            update(mid+1, r, T[x].r, T[y].r, pos);
}
int query(int l, int r, int x, int y, int k) {
        if(l == r)      return l;
        int mid = (l+r)>>1;
        int sum = T[T[y].l].sum - T[T[x].l].sum;
        if(sum>=k)      return query(l, mid, T[x].l, T[y].l, k);
        else            return query(mid+1, r, T[x].r, T[y].r, k - sum);
}

int main() {
        scanf("%d %d",&n, &m);
        for(int i=1;i<=n;++i)   scanf("%d",&a[i]), v.push_back(a[i]);
        sort(v.begin(),v.end());
        v.erase(unique(v.begin(), v.end()), v.end());
        for(int i=1;i<=n;++i)   update(1,n,root[i],root[i-1],getid(a[i]));
        for(int i=1;i<=m;++i) {
                scanf("%d %d %d",&x,&y,&k);
                printf("%d\n",v[query(1, n, root[x-1], root[y], k) - 1]);
        }
        return 0;
}

QT如何使用CTK插件搭建应用程序框架? CTK框架,QT框架,插件系统 阅读详情

相关推荐

数据科学常见模型总结(二)-倾向性得分匹配模型

PSM的核心思想是从未受干预的用户群体中,找到和干预对象一模一样的用户,这样就可以把因果效应归因到干预上。

wudelong0112的专栏 4895

bzoj 4923: K小值查询 splay

题意 维护一个长度为n的正整数序列a_1,a_2,…,a_n,支持以下两种操作: 1 k,将序列a从小到大排序,输出a_k的值。 2 k,将所有严格大于k的数a_i减去k。 n,m 分析 咋一看还以为是什么玄学的分块题。。。 题解挺巧妙的说。 对于2操作,[1,k]内的数不改变,[2k+1,inf]内的数的顺序也是不改变的,[k+1,2k]内的数至少减少一半,所以我们可以用一棵

beginend 973

中断向量表配置不当引发Default_Handler死循环问题解析

本文深入解析STM32开发中因中断向量表配置不当导致的Default_Handler死循环问题。以STM32F407VET6为例,详细阐述中断向量表的工作原理、常见触发场景及系统化排查方法,并提供使用STM32CubeMX的正确姿势和手动配置的注意事项,帮助开发者快速定位并解决这一常见难题。

grafana6viz的博客 179

主席树简介及应用

【主席树简介】 主席树,即可持久化线段树,又称函数式线段树,是重要的可持久化数据结构之一。所谓可持久化,是指可以回溯到历史版本。 主席树的本质,就是在有数据更新时,在基准线段树的基础上采用“结点复用”的方式仅仅增加少量结点来维护历史数据,而不是通过存储不同版本线段树的方式来维护历史数据,从而达到减少时空消耗的目的,避免出现TLE(Time Limit Exceeded)及MLE(Memory Limit Exceeded)错误。主席树空间一般建议是开n<<5(n为基准线段树的结点数)。 如在..

hnjzsyjyj的专栏 3313

从理论到板级:FOC电机驱动硬件电路全链路设计解析

本文从硬件工程师视角,深度解析FOC电机驱动从理论到板级实现的全链路设计。重点剖析了电源保护、核心采样电路、三相逆变桥与驱动电路等关键硬件模块的设计要点与实战经验,强调硬件是FOC算法可靠运行的基石,并提供了PCB布局布线的核心原则,帮助开发者构建高性能、高可靠性的电机驱动硬件平台。

weixin_29240711的博客 333

esp8266步进电机驱动控制

blinker控制步进电机起保停,正反转(Arduino uno+esp8266+TB6600驱动器) Arduino uno的板子的程序 esp8266板子接入到Arduino uno的控制引脚上的5,6,7 esp8266程序 //****库***** #define BLINKER_WIFI //官方wifi协议库 #define BLINKER_PRINT Serial //串口协议库 #include <Blinker.h&gt

perseverance51博客 2855

[BZOJ4923]K小值查询

题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=4923 好题啊!直接做肯定是不行的,我们需要发现一些性质。考虑减去k后对各个数的影响,对于(k,2k](即大于k小于等于2k)的数,它们被减后会小于等于k,但对于>2k的数,减去k后还是大于k的,且那些数的相对大小不变,因为要动态维护第k大,我们可以想到用平衡树,一般用splay,然...

weixin_34192732的博客 224

11、RK3566/3568 Android11切割屏幕 长条屏 显示

在使用 RK3566 平台进行 Android 11 开发时,遇到切割屏(长条屏)显示画面不全。本文将详细介绍如何配置,以及如何修改 HWComposer 来调整显示区域,解决图像缩放问题。我这边屏幕是lvds接口的,分辨率1920 1080实际的屏物理尺寸是1920x463。

qq_39451352的博客 253

[bzoj4923]K小值查询

来自FallDream的博客,未经允许,请勿转载,谢谢。 维护一个长度为n的正整数序列a_1,a_2,...,a_n,支持以下两种操作: 1 k,将序列a从小到大排序,输出a_k的值。 2 k,将所有严格大于k的数a_i减去k。 n,m<=100000 splay维护序列,每次操作小等于k的数字不变,大于2k的数字顺序不变,(k,2k]的数字减小至少一半,最多减小log次...

weixin_30371875的博客 181

大模型——Dify:知识库与外部知识库

摘要 Dify的知识库功能为开发者提供了动态知识管理解决方案,超越了大模型静态预训练数据的限制。知识库支持多种文档格式(如txt、pdf、docx等),通过文档分段、索引设置和检索优化机制提升LLM的响应准确性。系统提供高质量和经济两种索引模式,前者采用向量化检索技术,后者使用关键词匹配以降低成本。知识库支持元数据管理,包括自动生成的内置元数据和用户自定义元数据,便于内容分类和检索。对于高级需求,Dify还支持连接外部知识库,通过API实现跨平台数据共享和检索优化,满足企业级知识管理需求。

732

桌面运维工程师面试题汇总(高频完整版)

岗位,覆盖:电脑硬件、系统安装与故障、网络、办公软件、安全、AD域、打印机、日常排错、服务意识。

老韩的Linux云计算架构师进阶之路 922

4923: K小值查询

辣鸡bz卡我常数毁我青春考虑把>k>k的数字分成两个部分,一部分在[k+1,2k][k+1,2k]内,一部分在[2k+1,inf][2k+1,inf]在[k+1,2k][k+1,2k]内的数字显然都至少变小了一半,那么每个数字最多在loglog次就变成了1,所以我们对于这部分直接暴力重新插入然后后面那个部分平衡树打标记就行了然后我的splay被卡出了翔,经过坚持不懈的卡常最后get了ac#inclu

独立团团长李云龙 846

【重识云原生】第四章云网络4.7.5节vDPA方案——virtio的半硬件虚拟化实现

vDPA(vhost Data Path Acceleration)即是让virtio数据平面不需主机干预的解决方案。该框架由Redhat提出,实现了virtio数据平面的硬件卸载。控制平面仍然采用原来的控制平面协议,当控制信息被传递到硬件中,硬件完成数据平面的配置之后,数据通信过程由硬件设备(智能网卡)完成,虚拟机与网卡之间直通。中断信息也由网卡直接发送至虚拟机不需要主机的干预。......

junbaozi的专栏 2188

Feed the dogs POJ - 2761 (主席树+区间第k大)

题目链接:http://poj.org/problem?id=2761 区间第k大模板题,和这题一样HDU - 2665 kth number #include <iostream> #include <cstdio> #include <algorithm> using namespace std; const int maxn = 1e5 + 10; ...

zx93的博客 228

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

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

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

POJ 2761 Feed the dogs 主席树(区间第k大)

题目:http://poj.org/problem?id=2761题意:求区间第k大数,很裸思路:很裸的主席树#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std;const int N = 100100; int root[N], lson[N*20], r

弱智就要多努力 458

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

【POJ - 2761】Feed the dogs 【主席树 求静态区间第k大】

Wind loves pretty dogs very much, and she has n pet dogs. So Jiajia has to feed the dogs every day for Wind. Jiajia loves Wind, but not the dogs, so Jiajia use a special way to feed the dogs. At luncht

lzs_lazy 325

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

POJ - 2104 K-th Number && POJ 2761 Feed the dogs(主席树静态区间第k大)

题目链接:http://poj.org/problem?id=2104点击打开链接 K-th Number Time Limit: 20000MS   Memory Limit: 65536K Total Submissions: 59682   Accepted: 20824 Case Time Limit: 2000MS

xuejye的博客 372

Splay树(区间第k小)——POJ 2761 Feed the dogs

Splay树(区间第k小)——POJ 2761 Feed the dogs

大田二十 1632

poj2761 Feed the dogs

Treap模板题

AaronPolaris 1905

【POJ2761】【区间第k大】Feed the dogs(吐槽)

Description Wind loves pretty dogs very much, and she has n pet dogs. So Jiajia has to feed the dogs every day for Wind. Jiajia loves Wind, but not the dogs, so Jiajia use a special way to feed ...

Gregory99174的博客 306

POJ 2761 Feed the dogs 求区间第k大 划分树

Description Wind loves pretty dogs very much, and she has n pet dogs. So Jiajia has to feed the dogs every day for Wind. Jiajia loves Wind, but not the dogs, so Jiajia use a special way to fe

lastone的专栏 434

POJ2761[Feed the dogs ] 不带修改主席树

POJ2761 主席树

Venishel的博客 398

POJ2761 Feed the dogs

Time Limit:6000MS Memory Limit:65536KB 64bit IO Format:%lld & %llu Description Wind loves pretty dogs very much, and she has n pet dogs. So Jiajia has t...

dezhen7015的博客 152

poj2761 Feed the dogs【解法一】

离散化+树状数组+二分

YHaX的博客 663

[POJ2761]Feed the dogs

Problem 查询区间第k大,但保证区间不互相包含(可以相交) Solution 只需要对每个区间左端点进行排序,那它们的右端点必定单调递增,不然会出现区间包含的情况。 所以我们暴力对下一个区间加上这个区间没有的点,删去下个区间没有的点。 因为每个点最多被加入,删除1次,所以时间复杂度为O(nlogn) Notice 当相邻两段区间不相交时,那么我们要先加入点,在删去点。 Code 非...

Q882199的博客 202

[SBT]POJ 2761 Feed the dogs

题目链接:http://poj.org/problem?id=2761 题意:给定一个序列,有N个数,给定M个询问,询问的形式为 a b c ,询问区间[a,b]内第c小的数。 解题方法:一次性读入所有的询问,然后把询问进行排序,排序的顺序为终点小的在前,终点一样,起点大的在前,然后对排序后的每个询问进行处理,每次保证SBT中只有区间[a,b]的数(用插入和删除操作来保证),然后查询第K小。

Airarts_的专栏 875
上一篇: POJ 2104 K-th Number——————主席树模板,区间第k大
下一篇: HDU 2665 Kth number——————区间第k大,主席树
陶鸿杰
博客等级 码龄9年 93粉丝 298原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值