acdream 1427
来源:互联网 发布:算命的为何准 知乎 编辑:程序博客网 时间:2024/06/14 09:40
题意:短 略
解法:线段树单点更新 区间查询
#include<cstdio>#include<string.h>#include<iostream>#include<limits.h>using namespace std;#define MAXN 200100#define ls (rt<<1)#define rs (rt<<1|1)#define mid ((l+r)>>1)int sum[MAXN<<2],num[MAXN],co[MAXN],n,lim;inline void ins(int rt,int l,int r,int pos,int w){ if(l==r){sum[rt]+=w;return ;} if(pos<=mid)ins(ls,l,mid,pos,w); if(mid<pos)ins(rs,mid+1,r,pos,w); sum[rt]=min(sum[ls],sum[rs]);}inline int query(int rt,int l,int r,int L,int R){ if(L<=l&&r<=R)return sum[rt]; int ans=INT_MAX; if(L<=mid)ans=min(ans,query(ls,l,mid,L,R)); if(mid<R)ans=min(ans,query(rs,mid+1,r,L,R)); return ans;}int main(){ while(~scanf("%d%d",&n,&lim)){ int _=0; for(int i=1;i<=n;i++) scanf("%d",&num[i]); memset(sum,0,sizeof sum);memset(co,0,sizeof co); for(int i=1;i<=n;i++){ co[num[i]]++; ins(1,0,n,num[i],1); if(num[i]==0){_++;continue;} if(query(1,0,n,0,num[i]-1)<co[num[i]]-lim) break; _++; } printf("%d\n",_); }}
0 0
- acdream 1427
- ACdream 1427 Nice Sequence
- acdream 1427后缀数组
- acdream 1427 Nice Sequence
- ACdream 1427 Nice Sequence
- ACdream 1427Nice Sequence
- ACdream
- Acdream
- ACdream
- ACdream
- ACdream
- ACdream
- ACdream
- ACdream
- ACdream
- ACdream
- ACdream
- ACdream
- 找出n个元素中最小的k个数(编程珠玑第二章)
- codechef It Is Axis Time
- 让Android模拟飞起来
- Swap Nodes in Pairs
- 直接插入排序(Java版)
- acdream 1427
- Redis 主从复制
- html设置行距
- php快速排序方法
- 在solaris上使用rsync(1):实现两个server之间的文件传输
- LeetCode-Maximum Product Subarray
- 配置Tomcat(绿色版)
- 强大的数据访问助手——ADO.NET
- 题目1156:谁是你的潜在朋友 题目12