[BZOJ 1500] 수리 서열
코드 약 하 게...천천히 뛰다.구간 조작 은 사실 분열 이 필요 없다 고 합 니까?
시간 이 있 으 면 다시 최적화 하 자...
#include
#include
#include
#include
using namespace std;
const int maxn=500010;
const int inf=500000000;
int root;
int a[maxn],siz[maxn],lm[maxn],rm[maxn],s[2][maxn],sum[maxn],v[maxn],mx[maxn],n,m,stk[maxn],t;
bool sflag[maxn],flag[maxn];
char S[20];
int cmp(int ro,int k){
if (siz[s[0][ro]]+1==k) return -1;
return k>1;
if (l=1;i--) stk[++t]=i;
scanf("%d%d",&n,&m);
for (int i=1;i<=n;i++) scanf("%d",&a[i]);
a[0]=-inf;n++;a[n]=-inf;
lm[0]=rm[0]=0;mx[0]=-inf;
sum[0]=v[0]=siz[0]=0;
root=build(0,n);
for (int i=1;i<=m;i++){
scanf("%s",&S);
int pos,c;
switch(S[2]){
case 'S': //INSERT_posi_tot_ci
scanf("%d%d",&pos,&n);
if (n<=0) break;
for (int i=1;i<=n;i++) scanf("%d",&a[i]);
insert(pos,n);
break;
case 'L': //DELETE_posi_tot
scanf("%d%d",&pos,&n);
if (n<=0) break;
del(pos,n);
break;
case 'K': //MAKE-SAME_posi_tot_c
scanf("%d%d%d",&pos,&n,&c);
if (n<=0) break;
samev(pos,n,c);
break;
case 'V': //REVERSE_posi_tot
scanf("%d%d",&pos,&n);
if (n<=0) break;
reverse(pos,n);
break;
case 'T': //GET-SUM_posi_tot
scanf("%d%d",&pos,&n);
if (n<=0){
printf("0
");
break;
}
get_sum(pos,n);
break;
case 'X': //MAX-SUM
printf("%d
",mx[root]);
break;
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[Codevs 3306] 과일 언니 과일 거리 구경 Ⅲ 나무 사슬 분할고치다됐어!좋아!많다맙소사! 선분 수 는 zkw 를 시도 해 보 았 으 니 수확 이 있 는 셈 이다. 주석...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.