HDUnbsp;4251nbsp;Thenbsp;Famousnbsp;ICPCnbsp;Teamnbsp;Ag…

2023-10-20 03:38

本文主要是介绍HDUnbsp;4251nbsp;Thenbsp;Famousnbsp;ICPCnbsp;Teamnbsp;Ag…,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4251

 

看了人家的结题报告才知道有划分树这种东东~ ~ ~

划分树

划分树是一种基于线段树的数据结构。主要用于快速求出(在log(n)的时间复杂度内)序列区间的第k大值

此题是模板题,就不说各种废话了,

 

代码:

#include<stdio.h>
#include<stdlib.h>
#define MAX 100001

int od[MAX],map[MAX];
int left[20][MAX],val[20][MAX];

int cmp(const void *a,const void *b)
{
   return map[*(int *)a] - map[*(int *)b];
}

void Build(int l,int r,int d)
{
   if(l==r)return;
   int i,mid=(l+r)>>1,p=0;
   for(i=l;i<=r;i++)
   {
       if(val[d][i] <= mid)
       {
           val[d+1][l+p]=val[d][i];
           left[d][i]=++p;
       }
       else
       {
           left[d][i]=p;
           val[d+1][mid+i+1-l-p]=val[d][i];
       }
   }
   Build(l,mid,d+1);
   Build(mid+1,r,d+1);
}

int search(int s,int e,int k,int l,int r,int d)
{
   if(l==r)return l;
   int mid=(l+r)>>1,ss,ee;
   ss=s==l?0:left[d][s-1];
   ee=left[d][e];
   if( ee-ss >=k)
       return search(l+ss,l+ee-1,k,l,mid,d+1);
   else return search(mid+1+(s-l-ss),mid+1+(e-l-ee),k-(ee-ss),mid+1,r,d+1);
}

int main()
{
   int n,i,m,l,r,ans=0;
   while(scanf("%d",&n)!=EOF)
   {
       for(i=1;i<=n;i++)
       {
           scanf("%d",&map[i]);
           od[i]=i;
       }
       qsort(od+1,n,sizeof(od[0]),cmp);
       for(i=1;i<=n;i++)
           val[0][od[i]]=i;
       Build(1,n,0);
       scanf("%d",&m);
       printf("Case %d:\n",++ans);
       while(m--)
       {
           scanf("%d%d",&l,&r);
           printf("%d\n",map[od[search(l,r,(r-l)/2+1,1,n,0)]]);
       }
   }
   return 0;
}

这篇关于HDUnbsp;4251nbsp;Thenbsp;Famousnbsp;ICPCnbsp;Teamnbsp;Ag…的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/244387

相关文章

蓝牙--关于bta_ag_sdp.cc文件的讲解

讲解代表之前先简单介绍下HF和AG HF(Hands-Free unit)测:是指作为音频网关的远程音频输入和输出机制的设备。它还提供了一些远程控制手段。在蓝牙通信中,HF通常是支持HFP(Hands-Free Profile)协议的设备,例如蓝牙耳机、汽车蓝牙系统等。 AG(Audio Gateway)测:是指作为音频的输入和输出网关的设备。典型的充当音频网关的设备包括手机。 我们这边主要

蓝牙--关于bta_ag_sco.cc文件的讲解

讲解代表之前先简单介绍下HF和AG HF(Hands-Free unit)测:是指作为音频网关的远程音频输入和输出机制的设备。它还提供了一些远程控制手段。在蓝牙通信中,HF通常是支持HFP(Hands-Free Profile)协议的设备,例如蓝牙耳机、汽车蓝牙系统等。 AG(Audio Gateway)测:是指作为音频的输入和输出网关的设备。典型的充当音频网关的设备包括手机。 我们这边主要

蓝牙--关于bta_ag_rfc.cc文件的讲解

讲解代表之前先简单介绍下HF和AG HF(Hands-Free unit)测:是指作为音频网关的远程音频输入和输出机制的设备。它还提供了一些远程控制手段。在蓝牙通信中,HF通常是支持HFP(Hands-Free Profile)协议的设备,例如蓝牙耳机、汽车蓝牙系统等。 AG(Audio Gateway)测:是指作为音频的输入和输出网关的设备。典型的充当音频网关的设备包括手机。 我们这边主要

蓝牙--关于bta_ag_main.cc文件的讲解

讲解代表之前先简单介绍下HF和AG HF(Hands-Free unit)测:是指作为音频网关的远程音频输入和输出机制的设备。它还提供了一些远程控制手段。在蓝牙通信中,HF通常是支持HFP(Hands-Free Profile)协议的设备,例如蓝牙耳机、汽车蓝牙系统等。 AG(Audio Gateway)测:是指作为音频的输入和输出网关的设备。典型的充当音频网关的设备包括手机。 我们这边主要

【ag-grid】列宽设置不生效探索

发现使用sizeColumnsToFit()会覆盖默认设置的宽度 解决方案1 给某一列的列定义设置为suppressSizeToFit设置为:true 核心代码: gridColumns: (ColDef | ColGroupDef)[] = [{checkboxSelection: true,headerCheckboxSelection: true,suppressSizeToFit:

实现 ChatPDF RAG:密集向量检索(R)+上下文学习(AG)

实现 ChatPDF & RAG:密集向量检索(R)+上下文学习(AG) RAG 是啥?怎么优化 RAG?   RAG 是啥? RAG 是检索增强生成的缩写,是一种结合了信息检索技术与语言生成模型的人工智能技术。 这种技术主要用于增强 LLM 的能力,使其能够生成更准确且符合上下文的答案,同时减少模型幻觉。 RAG通过将检索模型和生成模型结合起来,利用专有数据源的信息

HDUnbsp;1215--七夕节

七夕节 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 2628 Accepted Submission(s): 986 Problem Description 七夕节那天,月老来到数字王国,他在城门上贴了一张告示,并且和数字王国的

hdunbsp;1007nbsp;平面最近点对nbsp;nbsp;随机增量…

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1007   题目大意:求平面内最近点对的距离   考查点:求平面最近点对的较快算法,(二分或随机增量)   思路:当我们确定了一个两点之间的距离r以后,就可以在平面上画出一个正方形表格来 正方形的边长为r,这样可能与点x更新r的点只能在x所在点的8个方向及自己所在格子。 这样我们就可以将问题的

hdunbsp;1394

解题报告 题目:http://acm.hdu.edu.cn/showproblem.php?pid=1394 题目大意:给定序列,序列可变换即将前面i个移到序列后边,问经过变换可得到的最小的逆序数是多少? 思路:最近状态一塌糊涂啊,一开始居然连怎样利用求和的思想去就逆序数都不会了,想了半天也没想起来,看了看别人的解题报告才又一次恍然大悟,就是记录每个数字在他之前一共出现了多少个比他小

[MSSQL]理解SQL Server AlwaysOn AG的备份

AG提供了以下几种备份策略 下面来看看各项的解释 Prefer Secondary(首选辅助副本) 应在辅助副本上执行此可用性组的自动备份。如果没有可用的辅助副本,将在主副本上执行备份。 这个选项只是概念上的选项。基本上,用户可以从任何复制节点上执行备份命令。 我们可以在主副本上执行一个备份命令测试一下: BACKUP DATABASE [AdventureWorks2016]TO