給出n個數,求每個數和它前面每個數的差值絕對值的最小值之和。
n<=32767
很顯然求前驅後驅。
可以離散化後用權值線段樹二分找。
也可以直接用splay找。
或者還可以離線排完序用雙向鍊錶找。
你喜歡就好嘍。。。
orz bzoj上rank1 0ms踩所有人
#include
#include
#include
#define fo(i,a,b) for(int i=a;i<=b;i++)
#define n 50005
using
namespace
std;
const
int inf=0x7fffffff;
int n,x,a,b,ans,tot,root,t[n][2],f[n],key[n];
void insert(int &v,int y,int fa)
if (key[v]>y) insert(t[v][0],y,v);
else insert(t[v][1],y,v);
}int son(int x)
void rotate(int x)
void splay(int x,int y)
if (!y) root=x;
}int pre(int x)
return x;
}int suf(int x)
return x;
}int main()
printf("%d",ans);
}
BZOJ 1588 HNOI2002 營業額統計
description 營業額統計 tiger最近被公司公升任為營業部經理,他上任後接受公司交給的第一項任務便是統計並分析公司成立以來的營業情況。tiger拿出了公司的賬本,賬本上記錄了公司成立以來每天的營業額。分析營業情況是一項相當複雜的工作。由於節假日,大減價或者是其他情況的時候,營業額會出現一...
BZOJ 1588 HNOI2002 營業額統計
treap的入門題,雖然在splay的 裡看到過這題。遇到2個奇葩問題 1 bzoj 上用srand time null 會re 2 這題的資料不完整 time limit 5 sec memory limit 162 mb submit 6820 solved 2250 submit status...
BZOJ1588 HNOI2002 營業額統計
time limit 5 sec memory limit 162 mb submit 20574 solved 8880 submit status discuss 營業額統計 tiger最近被公司公升任為營業部經理,他上任後接受公司交給的第一項任務便是統計並分析公司成立以來的營業情況。tiger...