bzoj1058: [ZJOI2007]报表统计 STL
来源:互联网 发布:nginx 域名www跳转 编辑:程序博客网 时间:2024/05/17 23:01
强大的stl,硬生生地把200多行的splay变为了90行的暴力。。。
#include <cstdio>#include <iostream>#include <cstring>#include <map>#include <set>#include <vector>#include <algorithm>using namespace std;#define maxn 500005#define inf 1<<30int n,m;set<int>s,tr;map<int, int>mp;vector<int>g[maxn];int a[maxn],b[maxn];int main(){ scanf("%d%d",&n,&m); int mg=inf,ms=inf,pos,val; for(int i=0;i<n;i++) { scanf("%d",&a[i]); b[i]=a[i]; tr.insert(a[i]); if(i) { int k=abs(a[i]-a[i-1]); s.insert(k); mp[k]++; } } sort(b,b+n); for(int i=1;i<n;i++) { ms=min(ms,b[i]-b[i-1]); } mg=*s.begin(); char op[50]; while(m--) { scanf("%s",op); if(op[4]=='R') { scanf("%d%d",&pos,&val); pos--; g[pos].push_back(val); if(ms) { set<int>::iterator it=tr.lower_bound(val); if(it!=tr.begin()) { if(it==tr.end()) { it--; ms=min(ms,val-*it); } else { int x=*it; it--; int y=*it; ms=min(ms,abs(x-val)); ms=min(ms,abs(y-val)); } } else { ms=min(ms,abs(val-*tr.begin())); } } tr.insert(val); int x=inf,y=x; if(g[pos].size()==1) x=a[pos]; else x=g[pos][g[pos].size()-2]; if(pos+1<n) { y=a[pos+1]; int k=abs(x-y); mp[k]--; if(mp[k]==0)s.erase(k); k=abs(x-val); s.insert(k); mp[k]++; k=abs(y-val); s.insert(k); mp[k]++; mg=*s.begin(); } else { int k=abs(x-val); s.insert(k); mp[k]++; mg=*s.begin(); } } else if(op[4]=='G') printf("%d\n", mg); else printf("%d\n", ms); } return 0;}
0 0
- bzoj1058: [ZJOI2007]报表统计 STL
- BZOJ1058(ZJOI2007)报表统计--STL
- 【BZOJ1058】【ZJOI2007】报表统计 stl模板
- [BZOJ1058][ZJOI2007]报表统计
- bzoj1058【zjoi2007】报表统计
- BZOJ1058 [ZJOI2007]报表统计
- 【BZOJ1058】【ZJOI2007】报表统计
- bzoj1058 [ZJOI2007]报表统计
- [BZOJ1058]ZJOI2007报表统计|平衡树
- BZOJ1058 洛谷 1110 [ZJOI2007]报表统计
- 【bzoj1058】[ZJOI2007]报表统计 平衡树
- 【堆+平衡树】BZOJ1058(ZJOI2007)[报表统计]题解
- BZOJ 1058: [ZJOI2007]报表统计 STL
- BZOJ 1058 - [ZJOI2007]报表统计 STL splay [挖坑待填]
- 1058: [ZJOI2007]报表统计
- 1058: [ZJOI2007]报表统计
- 1058: [ZJOI2007]报表统计
- [ZJOI2007]报表统计
- 并查集
- Linux的SOCKET编程详解
- c语言中二分法查找的升级版--折半查找法
- Java Web第一章 index.jsp
- 11111111111111
- bzoj1058: [ZJOI2007]报表统计 STL
- 32_手机超级管理员&一键锁屏,擦除数据
- 【安卓笔记】扁平化的ProgressBar-----ProgressWheel
- 二叉搜索树的性质与操作
- POJ3264
- Visible Lattice Points poj+欧拉函数的应用+水水的过了
- 中国剩余定理
- Dividing coins - UVa 562 dp背包
- poj2528Mayor's posters(线段树)