題目大意 :給定乙個序列,有多次詢問和修改,將新元素插在原數列位置的後面,詢問相鄰元素差值最小,和數列中兩元素最小的差。
stl解法:用乙個set去維護相鄰兩個數差的最小值,用乙個堆去維護所有序列中最小的差
#includeusingnamespace
std;
#define inf 1000000000
#define maxn 500005
int ed[maxn],st[maxn];//
記錄序列中每個位置的第乙個和最後乙個元素
intn,m;
multiset
a,b;
mapmp;
priority_queue
< int,vector,greater >k;
inline
int read()//
加了快讀才能在bzoj卡過去
while(ch>='
0'&&ch<='9')
return x*f;
}void insert(int
x) void push(int
x)int
main()
for(int i=2;i<=n;i++)
char s[15];int
q,y;
for(int i=1;i<=m;i++)
insert(abs(ed[q]-y));
insert(abs(y-st[q+1
]));
ed[q]=y;push(ed[q]);
}else
if(s[4]=='s'
)
else printf("
%d\n
",*a.begin());
}return0;
}
bzoj1058 ZJOI2007 報表統計
小q的媽媽是乙個出納,經常需要做一些統計報表的工作。今天是媽媽的生日,小q希望可以幫媽媽分擔一些工作,作為她的生日禮物之一。經過仔細觀察,小q發現統計一張報表實際上是維護乙個可能為負數的整數數列,並且進行一些查詢操作。在最開始的時候,有乙個長度為n的整數序列,並且有以下三種操作 insert i k...
bzoj1058 ZJOI2007 報表統計
傳送門 題解 這個insert操作好py啊是不是用set就能搞搞啊。什麼?你跟我講t了?讀入優化?還是t?卡了卡常,發現乙個東西用priority queue就夠了。然後12s過了。include include include include include include include usi...
BZOJ1058 ZJOI2007 報表統計
bzoj1058 zjoi2007 報表統計 小q的媽媽是乙個出納,經常需要做一些統計報表的工作。今天是媽媽的生日,小q希望可以幫媽媽分擔一些工作,作為她的生日禮物之一。經過仔細觀察,小q發現統計一張報表實際上是維護乙個可能為負數的整數數列,並且進行一些查詢操作。在最開始的時候,有乙個長度為n的整數...