一看C才[0,50],肯定要开51棵线段树维护y区间的最小x值啦

是男人就上51棵..等等空间爆几倍了

动态开点!51棵线段树用全局节点变量控制,有点像主席树

清空工作很简单,把51个树根清掉然后回收节点(tot=0)就行了

然而!真不知道那些内部数据是有多恶心的

MLE × 4

RTE × 4

最后在query那里强行截断9900ms+水过.....

看了下空间占用才8000k左右hhh

现场赛能做出来得键盘开光吧

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#define clr(a,b) memset(a,b,sizeof a)
#define rep(i,j,k) for(int i=j;i<=k;i++)
using namespace std;
const int maxn = 2e6+5e5+11;
const int oo = 0x3f3f3f3f;
int T[70];
struct ST{
int L[maxn<<2],R[maxn<<2],minx[maxn<<2];
int tot;
void init(){
clr(T,0);
tot=0;
L[0]=R[0]=0;
minx[0]=oo;
}
void pu(int o){
minx[o]=min(minx[L[o]],minx[R[o]]);
}
void update(int &o,int l,int r,int y,int x){
if(!o){
o=++tot;
L[o]=R[o]=0;
minx[o]=x;
}
if(l==r){
minx[o]=min(minx[o],x);
return ;
}
int m=l+r>>1;
if(y<=m) update(L[o],l,m,y,x);
else update(R[o],m+1,r,y,x);
pu(o);
}
int query(int &o,int l,int r,int LL,int RR){
if(!o){
return oo; //很重要!!!
}
if(LL<=l&&r<=RR){
return minx[o];
}
int m=l+r>>1;
int ans=oo;
if(LL<=m) ans=min(ans,query(L[o],l,m,LL,RR));
if(RR>m) ans=min(ans,query(R[o],m+1,r,LL,RR));
return ans;
}
}st;
const int n = 1e6;
int main(){
int op,x,y,yy1,yy2,c;
st.init();
while(scanf("%d",&op)!=EOF){
if(op==3)break;
else if(op==0) st.init();
else if(op==1){
scanf("%d%d%d",&x,&y,&c);
st.update(T[c],1,n,y,x);
}
else if(op==2){
scanf("%d%d%d",&x,&yy1,&yy2);
int ans=0,tmp;
rep(i,0,50){
tmp=st.query(T[i],1,n,yy1,yy2);
if(tmp<=x) ans++;
}
printf("%d\n",ans);
}
}
return 0;
}

最新文章

  1. Oracle视图分类及各种操作讲解(超级好文)
  2. Windows下修改Oracle默认的端口1521
  3. 使用gitlab+jenkins+saltstack+rsync自动部署Web应用
  4. jquery easy ui 1.3.4 按钮(button)(6)
  5. git的基本使用
  6. 修饰符(static、final、abstract)第二篇
  7. POJ_3579_Median_(二分,查找第k大的值)
  8. S2SH+Hibernate search出现的问题
  9. ThreadLocal 笔记
  10. CreateJS第0章- Canvas基础
  11. vuex构建笔记本应用学习
  12. imgur.py
  13. Printk 标志优先级别
  14. CSS3基础(2)—— 文字与字体相关样式、盒子类型、背景与边框相关样式、变形处理、动画功能
  15. Java并发工具类 - CountDownLatch
  16. NHibernate教程(19) —— 一级缓存
  17. Windows 安装 python2.7
  18. PHP 扩展开发检测清单(扩展开发必读)
  19. Golang学习笔记:channel
  20. Android日历视图(CalendarView)讲解-android学习之旅(三十六)

热门文章

  1. WebDriverWait等设置等待时间和超时时间
  2. jQuery中关于toggle的使用
  3. 浅析C语言中assert的用法(转)
  4. 分享一个好用的功能强大的节点树jQuery插件
  5. try-catch-finally对返回值的影响
  6. HYSBZ 1036 树的统计Count (水题树链剖分)
  7. Azure SQL作業
  8. NetCore服务虚拟化01(集群组件Sodao.Core.Grpc)
  9. Android学习笔记 Toast屏幕提示组件的使用方法
  10. Ajax GET