[POI2006] TET-Tetris 3D
6635 단어 제목 분석2 차원 선분 트 리나무
데이터 구 조 를 작성 합 니 다. 사각형 의 최대 값 을 조회 하고 이 사각형 의 값 을 모두 이 최대 값 에 상수 로 바 꿀 수 있 습 니 다.
제목 분석:
2 차원 선분 트 리 + 영구 화 maxi 는 하위 트 리 의 최대 값 을 표시 합 니 다. tag 는 하위 트 리 가 모두 덮어 쓰 인 값 을 표시 합 니 다.
제목 링크:
Luogu 3437
Ac 코드:
#include
#include
#include
#include
int Maxx,Maxy,n;
struct inside_seg{
int maxi[4005],tag[4005];
void modify(int o,int l,int r,int ql,int qr,int k)
{
maxi[o]=std::max(maxi[o],k);
if(ql<=l&&r<=qr) return (void)(tag[o]=std::max(tag[o],k));
int mid=(l+r)>>1;
if(ql<=mid) modify((o<<1),l,mid,ql,qr,k);
if(qr>mid) modify((o<<1)|1,mid+1,r,ql,qr,k);
}
int ask(int o,int l,int r,int ql,int qr)
{
if(ql<=l&&r<=qr) return std::max(tag[o],maxi[o]);
int mid=(l+r)>>1;
int ans=tag[o];
if(ql<=mid) ans=std::max(ans,ask((o<<1),l,mid,ql,qr));
if(qr>mid) ans=std::max(ans,ask((o<<1)|1,mid+1,r,ql,qr));
return ans;
}
};
struct external_seg{
inside_seg maxi[4005],tag[4005];
void modify(int o,int l,int r,int ql,int qr,int y1,int y2,int k)
{
maxi[o].modify(1,0,Maxy,y1,y2,k);
if(ql<=l&&r<=qr) return (void)(tag[o].modify(1,0,Maxy,y1,y2,k));
int mid=(l+r)>>1;
if(ql<=mid) modify((o<<1),l,mid,ql,qr,y1,y2,k);
if(qr>mid) modify((o<<1)|1,mid+1,r,ql,qr,y1,y2,k);
}
int ask(int o,int l,int r,int ql,int qr,int y1,int y2)
{
if(ql<=l&&r<=qr) return maxi[o].ask(1,0,Maxy,y1,y2);
int mid=(l+r)>>1;
int ans=tag[o].ask(1,0,Maxy,y1,y2);
if(ql<=mid) ans=std::max(ans,ask((o<<1),l,mid,ql,qr,y1,y2));
if(qr>mid) ans=std::max(ans,ask((o<<1)|1,mid+1,r,ql,qr,y1,y2));
return ans;
}
}T;
int main()
{
scanf("%d%d%d",&Maxx,&Maxy,&n);
for(int i=1,d,s,h,x,y;i<=n;i++)
{
scanf("%d%d%d%d%d",&d,&s,&h,&x,&y);
h+=T.ask(1,0,Maxx,x,x+d-1,y,y+s-1);
T.modify(1,0,Maxx,x,x+d-1,y,y+s-1,h);
}
printf("%d
",T.ask(1,0,Maxx,0,Maxx,0,Maxy));
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
YY의 GCD∑ni=1∑mj=1(gcd(i,j)==pi)∑i=1n∑j=1m(gcd(i,j)==pi)pi는 질수 pi는 질수 프리 프로세싱μ(Tp) μ (T p) 접두사 및 Luogu 2257...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.