codevs 1296 營業額統計
題目描述 description
tiger最近被公司公升任為營業部經理,他上任後接受公司交給的第一項任務便是統計並分析公司成立以來的營業情況。
tiger拿出了公司的賬本,賬本上記錄了公司成立以來每天的營業額。分析營業情況是一項相當複雜的工作。由於節假日,大減價或者是其他情況的時候,營業額會出現一定的波動,當然一定的波動是能夠接受的,但是在某些時候營業額突變得很高或是很低,這就證明公司此時的經營狀況出現了問題。經濟管理學上定義了一種最小波動值來衡量這種情況:
該天的最小波動值 = min
當最小波動值越大時,就說明營業情況越不穩定。
而分析整個公司的從成立到現在營業情況是否穩定,只需要把每一天的最小波動值加起來就可以了。你的任務就是編寫乙個程式幫助tiger來計算這乙個值。
第一天的最小波動值為第一天的營業額。
輸入描述 input description
第一行為正整數n(n<=32767),表示該公司從成立一直到現在的天數,接下來的n行每行有乙個正整數ai(ai
<=1000000),表示第i天公司的營業額。
輸出描述 output description
輸出檔案僅有乙個正整數,即每天最小波動值之和,小於231
樣例輸入 sample input 6
5125
46
樣例輸出 sample output
12
資料範圍及提示 data size & hint
結果說明:5+|1-5|+|2-1|+|5-5|+|4-5|+|6-5|=5+4+1+0+1+1=12
splay不解釋
//codevs營業額統計 平衡樹
#include #include #include #define inf 0x7fffffff
using namespace std;
int n, ans;
struct node
}*root;
void zig(node *x)
void zag(node *x)
void splay(node *x, node *f)
}void ins(node* x, node*t)
int find(node* x, bool f)
int main()
ins(root->l,t);splay(t,root);
x=t->l?find(t->l,1):inf;y=t->r?find(t->r,0):inf;
ans+=min(abs(a-x),abs(a-y));
} printf("%d\n",ans);
return 0;
}
Codevs 1296 營業額統計
原題位址 模板題,就不說了,相信做了前面幾道題就會這個了。就找一找前驅和後繼嘛。注意乙個點 這裡乙個數的 前驅 和 後繼 應包括那個數本身。因為資料中有重複的數,我用bitset判重會re,不知是不是因為毒瘤資料。強上 include include include include include ...
CodeVS1296 營業額統計
tiger最近被公司公升任為營業部經理,他上任後接受公司交給的第一項任務便是統計並分析公司成立以來的營業情況。tiger拿出了公司的賬本,賬本上記錄了公司成立以來每天的營業額。分析營業情況是一項相當複雜的工作。由於節假日,大減價或者是其他情況的時候,營業額會出現一定的波動,當然一定的波動是能夠接受的...
Splay樹 Codevs 1296 營業額統計
題目描述 description tiger最近被公司公升任為營業部經理,他上任後接受公司交給的第一項任務便是統計並分析公司成立以來的營業情況。tiger拿出了公司的賬本,賬本上記錄了公司成立以來每天的營業額。分析營業情況是一項相當複雜的工作。由於節假日,大減價或者是其他情況的時候,營業額會出現一定...