bzoj 2223 [Coci 2009]PATULJCI
[Coci 2009]PATULJCI
Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 1286 Solved: 553
[Submit][Status][Discuss]
Description
Input
Output
10 3
1 2 1 2 1 2 3 2 3 3
8
1 2
1 3
1 4
1 5
2 5
2 6
6 9
7 10
Sample Input
no
yes 1
no
yes 1
no
yes 2
no
yes 3
yes 1
no
yes 1
no
yes 2
no
yes 3
Sample Output
HINT
Notice:输入第二个整数是序列中权值的范围Lim,即1<=ai(1<=i<=n)<=Lim。
1<=Lim<=10000
题解:
这道题就是可持久化线段树吧,然后维护一下该节点的size即可,权值线段树。
1 #include<cstring> 2 #include<cmath> 3 #include<algorithm> 4 #include<iostream> 5 #include<cstdio> 6 7 #define N 300007 8 #define M 10000007 9 using namespace std; 10 inline int read() 11 { 12 int x=0,f=1;char ch=getchar(); 13 while(ch>'9'||ch<'0'){if (ch=='-') f=-1;ch=getchar();} 14 while(ch<='9'&&ch>='0') 15 { 16 x=(x<<3)+(x<<1)+ch-'0'; 17 ch=getchar(); 18 } 19 return x*f; 20 } 21 22 int n,m,sz,limit; 23 int root[N],ls[M],rs[M],sum[M]; 24 25 void change(int l,int r,int yl,int &xz,int z) 26 { 27 xz=++sz,sum[xz]=sum[yl]+1; 28 if (l==r) return; 29 ls[xz]=ls[yl],rs[xz]=rs[yl]; 30 int mid=(l+r)>>1; 31 if (z<=mid) change(l,mid,ls[yl],ls[xz],z); 32 else change(mid+1,r,rs[yl],rs[xz],z); 33 } 34 int query(int l,int r,int x,int y,int tmp) 35 { 36 if (l==r) return l; 37 int mid=(l+r)>>1; 38 if (sum[ls[y]]-sum[ls[x]]>tmp) return query(l,mid,ls[x],ls[y],tmp); 39 else if (sum[rs[y]]-sum[rs[x]]>tmp) return query(mid+1,r,rs[x],rs[y],tmp); 40 else return 0; 41 } 42 int main() 43 { 44 n=read(),limit=read(); 45 for (int i=1;i<=n;i++) 46 { 47 int x=read(); 48 change(1,limit,root[i-1],root[i],x); 49 } 50 m=read(); 51 for (int i=1;i<=m;i++) 52 { 53 int x=read(),y=read(); 54 int ans=query(1,limit,root[x-1],root[y],(y-x+1)/2); 55 if (ans==0) printf("no\n"); 56 else printf("yes %d\n",ans); 57 } 58 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构