BZOJ 1058 报表统计
2017-01-25 14:35
106 查看
基本思路正确。注意两点:
1.MIN_SORT_GAP不用以第二个set实现。这个答案一定是单调的。
2.lower_bound巨慢巨慢巨慢巨慢巨慢巨慢巨慢用lower_bound和set是10s与1h的区别。
能不用尽量不用。
1.MIN_SORT_GAP不用以第二个set实现。这个答案一定是单调的。
2.lower_bound巨慢巨慢巨慢巨慢巨慢巨慢巨慢用lower_bound和set是10s与1h的区别。
能不用尽量不用。
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<set> #define maxn 1000500 #define inf 1000000007 using namespace std; int n,m,a[maxn],b[maxn],last[maxn],tot,nxt[maxn],pre[maxn],x,y,mn=inf; multiset <int> s1,s3; multiset <int> ::iterator it1,it2,it3; char s[10]; int read() { char ch;int data=0,f=1; while (ch<'0' || ch>'9') { if (ch=='-') f=-1; ch=getchar(); } while (ch>='0' && ch<='9') { data=data*10+ch-'0'; ch=getchar(); } return data*f; } void add1() { nxt[tot]=nxt[last[x]];pre[tot]=last[x]; pre[nxt[last[x]]]=tot;nxt[last[x]]=tot;last[x]=tot; if (nxt[tot]!=-1) { it1=s1.find(abs(a[nxt[tot]]-a[pre[tot]])); s1.erase(it1); s1.insert(abs(a[nxt[tot]]-a[tot])); } s1.insert(abs(a[pre[tot]]-a[tot])); } void add2() { s3.insert(a[tot]);it1=s3.find(a[tot]); if (it1!=s3.begin()) { it1--; mn=min(mn,a[tot]-*it1); it1++; } it1++; if (it1!=s3.end()) mn=min(mn,*it1-a[tot]); } int main() { n=read();m=read();tot=n; for (int i=1;i<=n;i++) { a[i]=read();b[i]=a[i];s3.insert(a[i]); last[i]=i;nxt[i]=i+1;pre[i]=i-1; } pre[1]=nxt =-1; for (int i=1;i<=n-1;i++) s1.insert(abs(a[i+1]-a[i])); for (it1=s3.begin();it1!=s3.end();it1++) { if (it1!=s3.begin()) mn=min(mn,*it1-*it2); it2=it1; } for (int i=1;i<=m;i++) { scanf("%s",s); if (s[0]=='I') { scanf("%d%d",&x,&y);a[++tot]=y; add1(); add2(); } else if (s[4]=='S') printf("%d\n",mn); else printf("%d\n",*s1.begin()); } return 0; }
相关文章推荐
- 【set】【multiset】bzoj1058 [ZJOI2007]报表统计
- 【bzoj1058】[ZJOI2007]报表统计 平衡树
- BZOJ 1058 [ZJOI2007]报表统计 Splay
- 【BZOJ 1058】【ZJOI 2007】报表统计【Treap】
- 【BZOJ1058】[ZJOI2007]报表统计 STL
- 1058: [ZJOI2007]报表统计 - BZOJ
- BZOJ 1058 ZJOI 2007 报表统计 平衡树
- [BZOJ 1058] [ZJOI2007] 报表统计 【平衡树】
- bzoj 1058: [ZJOI2007]报表统计
- BZOJ1058 [ZJOI2007]报表统计 STL
- AC日记——[ZJOI2007]报表统计 bzoj 1058
- bzoj1058 [ZJOI2007]报表统计
- [bzoj1058][ZJOI2007]报表统计
- 洛谷&&BZOJ 1058 P1110 [ZJOI2007]报表统计
- BZOJ 1058 - [ZJOI2007]报表统计 STL splay [挖坑待填]
- [BZOJ1058][ZJOI2007]报表统计
- 【BZOJ1058】【ZJOI2007】报表统计 stl模板
- BZOJ 1058: [ZJOI2007]报表统计 STL
- [BZOJ1058]ZJOI2007报表统计|平衡树
- [BZOJ 1058][ZJOI2007]报表统计