BZOJ1058 [ZJOI2007]报表统计
来源:互联网 发布:香港服务器 知乎 编辑:程序博客网 时间:2024/05/08 14:02
因为没有删除操作所以拿数组记录下每个位置的第一个和最后一个然后拿set搞一下就可以了
忘加abs调了好久-_-mlgb
#include<iostream>#include<cstdlib>#include<cstdio>#include<cstring>#include<cmath>#include<ctime>#include<algorithm>#include<iomanip>#include<vector>#include<stack>#include<queue>#include<map>#include<set>#include<bitset>using namespace std;#define MAXN 500010#define MAXM 1010#define ll long long#define INF 1000000000#define MOD 1000000007#define eps 1e-8int v[MAXN];int a[MAXN];int n,m;multiset<int>s,V;int ss=INF;char xB[1<<15],*xS=xB,*xT=xB;#define getc() (xS==xT&&(xT=(xS=xB)+fread(xB,1,1<<15,stdin),xS==xT)?0:*xS++)inline int read(){ char ch=getc(); int f=1,x=0; while(!(ch>='0'&&ch<='9')){if(ch=='-')f=-1;ch=getc();} while(ch>='0'&&ch<='9'){x=x*10+(ch-'0');ch=getc();} return x*f;}void change(int x,int cv){if(x!=n){s.erase(s.find(abs(a[x+1]-v[x])));s.insert(abs(a[x+1]-cv));}s.insert(abs(cv-v[x]));v[x]=cv;multiset<int>::iterator p=V.insert(cv);if((p!=V.begin())&&(p!=--V.end())){p++;int tuv=*p;p--;p--;int tlv=*p;ss=min(ss,abs(cv-tlv));ss=min(ss,abs(cv-tuv));}else if(p!=V.begin()){p--;ss=min(ss,abs(cv-(*p)));}else if(p!=--V.end()){p++;ss=min(ss,abs(cv-(*p)));}}int main(){int i,x,y;char o[20];scanf("%d%d",&n,&m);for(i=1;i<=n;i++){scanf("%d",&a[i]);v[i]=a[i];if(i!=1){s.insert(abs(a[i]-a[i-1]));}multiset<int>::iterator p=V.insert(a[i]);if(p!=V.begin()){p--;ss=min(ss,abs(a[i]-(*p)));p++;}if(p!=--V.end()){p++;ss=min(ss,abs(a[i]-(*p)));}}while(m--){scanf("%s",o);if(o[0]=='I'){scanf("%d%d",&x,&y);change(x,y);}if(o[4]=='S'){printf("%d\n",ss);}if(o[4]=='G'){printf("%d\n",*(s.begin()));}}return 0;}/**/
0 0
- [BZOJ1058][ZJOI2007]报表统计
- bzoj1058【zjoi2007】报表统计
- BZOJ1058 [ZJOI2007]报表统计
- 【BZOJ1058】【ZJOI2007】报表统计
- bzoj1058 [ZJOI2007]报表统计
- bzoj1058: [ZJOI2007]报表统计 STL
- BZOJ1058(ZJOI2007)报表统计--STL
- 【BZOJ1058】【ZJOI2007】报表统计 stl模板
- [BZOJ1058]ZJOI2007报表统计|平衡树
- BZOJ1058 洛谷 1110 [ZJOI2007]报表统计
- 【bzoj1058】[ZJOI2007]报表统计 平衡树
- 【堆+平衡树】BZOJ1058(ZJOI2007)[报表统计]题解
- 1058: [ZJOI2007]报表统计
- 1058: [ZJOI2007]报表统计
- 1058: [ZJOI2007]报表统计
- [ZJOI2007]报表统计
- BZOJ 1058 [ZJOI2007]报表统计
- 【BZOJ - 1058】 ZJOI2007 报表统计
- BP神经网络梯度下降算法
- 博客插图
- bash的算术运算(整理中)
- MongoDB创建表步骤,Mongo常用的数据库操作命令,查询,添加,更新,删除_MongoDB 性能监测
- 分布式消息队列RocketMQ部署与监控
- BZOJ1058 [ZJOI2007]报表统计
- Python匹配利器-正则表达式(附赠爬图小程序)
- iOS图片拉伸技巧
- Android Handler 异步消息处理机制的妙用 创建强大的图片加载类
- [点滴记录]Unable to locate package错误 & gedit中文乱码
- 域渗透——Dump Clear-Text Password after KB2871997 installed
- 二叉树中的最大路径和
- 改变登录成功后跳转的页面
- mongodb 安装(windows mongodb 安装)