第一眼觉得是区间众数,后来发现其实不用那么难,就是主席树,query的操作改一下而已。。。
"主席树就是好多棵线段树连来连去"(喂,这句话也太简略了点的说。。。)

1 /************************************************************** 2 Problem: 3524 3 User: rausen 4 Language: C++ 5 Result: Accepted 6 Time:6340 ms 7 Memory:119984 kb 8 ****************************************************************/ 9 10 #include <cstdio> 11 #include <algorithm> 12 13 using namespace std; 14 15 struct segment{ 16 int lson, rson, cnt; 17 }seg[10000010]; 18 19 int size, m, n, L, R, M, root[510000]; 20 21 void insert(int p, int &q, int l, int r, int X){ 22 seg[++size] = seg[p], q = size; 23 ++seg[size].cnt; 24 if (l == r) return; 25 int mid = (l + r) >> 1; 26 if (mid >= X) 27 insert(seg[p].lson, seg[q].lson, l, mid, X); 28 else insert(seg[p].rson, seg[q].rson, mid + 1, r, X); 29 } 30 31 int query(int Lx, int Rx, int k, int l, int r){ 32 if (l == r) return l; 33 int mid = (l + r) >> 1; 34 if (seg[seg[Rx].lson].cnt - seg[seg[Lx].lson].cnt > k) 35 return query(seg[Lx].lson, seg[Rx].lson, k, l, mid); 36 if (seg[seg[Rx].rson].cnt - seg[seg[Lx].rson].cnt > k) 37 return query(seg[Lx].rson, seg[Rx].rson, k, mid + 1, r); 38 return 0; 39 } 40 41 int main(){ 42 scanf("%d%d", &n, &m); 43 size = 0, root[0] = 0; 44 for (int i = 1; i <= n; ++i){ 45 scanf("%d", &M); 46 insert(root[i - 1], root[i], 1, n, M); 47 } 48 49 for (int i = 1; i <= m; ++i){ 50 scanf("%d%d", &L, &R); 51 if (L > R) swap(L, R); 52 M = (R - L + 1) >> 1; 53 printf("%d\n", query(root[L - 1], root[R], M, 1, n)); 54 } 55 return 0; 56 }
我的主席树写的比我的线段树短。。。我也是醉了。。。
By Xs酱~ 转载请说明
博客地址:http://www.cnblogs.com/rausen
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App