感覺已經是乙個很好的模版了,手機上再理順一下思路,明天寫個思路清晰,**清楚的
更新**,感覺這次的**真是決了,絕對優美通俗易懂的**風格
不過**長難免bug多,還是要練**能力的
#include#include#include#include#include#define debug(x) cout<<#x<<"="<'9') if (ch=='-') f=-1;
ans=ch-'0';
while ((ch=getchar())>='0'&&ch<='9') ans=ans*10+ch-'0';
return ans*f;
}void up(int x)//updata
void down(int x)//downdata
} if (rev[x]) }
void rotate(int x)
void splay(int x,int k)
if (k==0) rt=x;
up(x);//up up up
}void clear(int x)
int build(int l,int r,int f)//個人獨有的build方式
ch[id][0]=build(l,mid-1,id);
ch[id][1]=build(mid+1,r,id);
up(id);//
return id;
}int find(int i,int k)
void insert()
void dell(int x)
void del()
void sett()
void rever()
void summ()
int main()
return 0;
}
BZOJ 1500, 維修數列
傳送門 編寫乙個支援插入 刪除 修改 翻轉 求和以及求和最大子串行的資料結構。splay無疑。但是寫太醜也是會tle的,比方說插入的時候應該以建樹的形式插入,而不是乙個點乙個點的形式。實現起來要注意的細節很多,對練習打splay挺有好處。陸陸續續除錯了好多天,總算在崩潰之前ac了 include c...
BZOJ 1500 維修數列
time limit 10 sec memory limit 64 mb submit 14433 solved 4701 submit status discuss 輸入的第1 行包含兩個數n 和m m 20 000 n 表示初始時數列中數的個數,m表示要進行的運算元目。第2行包含n個數字,描述初...
bzoj 1500 維修數列
輸入的第1 行包含兩個數n 和m m 20 000 n 表示初始時數列中數的個數,m表示要進行的運算元目。第2行包含n個數字,描述初始時的數列。以下m行,每行一條命令,格式參見問題描述中的 任何時刻數列中最多含有500 000個數,數列中任何乙個數字均在 1 000,1 000 內。插入的數字總數不...