treap 1296 营业额统计

有一个点答案错误,求大神指教

#include<cstdio>
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
struct shu
{
 int zhi,dui,l,r,sum1;
}a[32768];
int n,sum,root,size,ans;
void qian(int a1,int a2)
{
 if(a1==0)
   return;
 if(a[a1].zhi==a2)
   {
    ans=a2;
    return;
   }
 if(a[a1].zhi<a2)
   {
     ans=a[a1].zhi;
     qian(a[a1].r,a2);
      }
    else
      qian(a[a1].l,a2);
    return;
}
void hou(int a1,int a2)
{
 if(a1==0)
   return;
 if(a[a1].zhi==a2)
   {
    ans=a2;
    return;
   }
 if(a[a1].zhi>a2)
   {
     ans=a[a1].zhi;
     hou(a[a1].l,a2);
      }
    else
      hou(a[a1].r,a2);
    return;
}
void zuo(int &a1)
{
 int t=a[a1].r;
 a[a1].r=a[t].l;
 a[t].l=a1;
 a1=t;
 return;
}
void you(int &a1)
{
 int t=a[a1].l;
 a[a1].l=a[t].r;
 a[t].r=a1;
 a1=t;
 return;
}
void jia(int &a1,int a2)
{
 if(a1==0)
   {
    size++;
    a1=size;
    a[a1].zhi=a2;
    a[a1].sum1=1;
    a[a1].dui=rand();
    return;
   }
   if(a[a1].zhi==a2)
     a[a1].sum1++;
    else 
      if(a[a1].zhi<a2)
        {
         jia(a[a1].r,a2);
         if(a[a[a1].r].dui<a[a1].dui)
           zuo(a1);
  }
    else
      {
       jia(a[a1].l,a2);
       if(a[a[a1].l].dui<a[a1].dui)
         you(a1);
   }
 return;
}
int main()
{
 scanf("%d",&n);
 scanf("%d",&sum);
 jia(root,sum);
 for(int i=1;i<n;i++)
   {
    int a1;
    scanf("%d",&a1);
    int minn=0X7fffff;
    ans=-1;
    qian(root,a1);
    if(ans>-1)
      minn=a1-ans;
    ans=-1;
    hou(root,a1);
    if(ans>-1)
      minn=min(ans-a1,minn);
    sum+=minn;
    jia(root,a1);
   }
 printf("%d\n",sum);
 return 0;
}

时间: 2024-08-09 06:36:02

treap 1296 营业额统计的相关文章

CodeVS 1296 营业额统计

1296 营业额统计2002年 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 大师 Master 题目描述 Description Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况. Tiger拿出了公司的账本,账本上记录了公司成立以来每天的营业额.分析营业情况是一项相当复杂的工作.由于节假日,大减价或者是其他情况的时候,营业额会出现一定的波动,当然一定的波动是能够接受的,但是在某些时候营业额突变得很高或是很低,这就证

splay 1296 营业额统计

有一个点超时,确实是个很简单的splay#include<cstdio> #include<iostream> using namespace std; int n,shu[1000006][2],root,size,b1,b2,sum1,sum[1000005],zhi[1000005]; int fa[1000005]; void xuan(int a1) { int a2,a3,l,r; a2=fa[a1]; a3=fa[a2]; if(a2==root) root=a1;

BZOJ 1588: [HNOI2002]营业额统计 双向链表 / splay / treap

1588: [HNOI2002]营业额统计 Description 营业额统计 Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况. Tiger拿出了公司的账本,账本上记录了公司成立以来每天的营业额.分析营业情况是一项相当复杂的工作.由于节假日,大减价或者是其他情况的时候,营业额会出现一定的波动,当然一定的波动是能够接受的,但是在某些时候营业额突变得很高或是很低,这就证明公司此时的经营状况出现了问题.经济管理学上定义了一种最小波动值来衡量这

bzoj1588 营业额统计 题解--Treap

Description 营业额统计 Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况. Tiger拿出了公司的账本,账本上记录了公司成立以来每天的营业额.分析营业情况是一项相当复杂的工作.由于节假日,大减价或者是其他情况的时候,营业额会出现一定的波动,当然一定的波动是能够接受的,但是在某些时候营业额突变得很高或是很低,这就证明公司此时的经营状况出现了问题.经济管理学上定义了一种最小波动值来衡量这种情况: 该天的最小波动值 当最小波动值越大

【Treap】bzoj1588-HNOI2002营业额统计

一.题目 Description 营业额统计 Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况. Tiger拿出了公司的账本,账本上记录了公司成立以来每天的营业额.分析营业情况是一项相当复杂的工作.由于节假日,大减价或者是其他情况的时候,营业额会出现一定的波动,当然一定的波动是能够接受的,但是在某些时候营业额突变得很高或是很低,这就证明公司此时的经营状况出现了问题.经济管理学上定义了一种最小波动值来衡量这种情况: 该天的最小波动值 当最小

bzoj 1588: [HNOI2002]营业额统计 treap

1588: [HNOI2002]营业额统计 Time Limit: 5 Sec  Memory Limit: 162 MBSubmit: 13902  Solved: 5225[Submit][Status][Discuss] Description 营业额统计 Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况. Tiger拿出了公司的账本,账本上记录了公司成立以来每天的营业额.分析营业情况是一项相当复杂的工作.由于节假日,大减价或者是其

[BZOJ1588][HNOI2002]营业额统计 无旋Treap

[HNOI2002]营业额统计 时间限制: 5 Sec  内存限制: 162 MB 题目描述 营业额统计 Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况. Tiger拿出了公司的账本,账本上记录了公司成立以来每天的营业额.分析营业情况是一项相当复杂的工作.由于节假日,大减价或者是其他情况的时候,营业额会出现一定的波动,当然一定的波动是能够接受的,但是在某些时候营业额突变得很高或是很低,这就证明公司此时的经营状况出现了问题.经济管理学上定

bzoj1588:[HNOI2002]营业额统计

Description 营业额统计 Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况. Tiger拿出了公司的账本,账本上记录了公司成立以来每天的营业额.分析营业情况是一项相当复杂的工作.由于节假日,大减价或者是其他情况的时候,营业额会出现一定的波动,当然一定的波动是能够接受的,但是在某些时候营业额突变得很高或是很低,这就证明公司此时的经营状况出现了问题.经济管理学上定义了一种最小波动值来衡量这种情况: 该天的最小波动值 当最小波动值越大

Splay练习题 [台州学院 2924] 营业额统计

2924: 营业额统计   Time Limit(Common/Java):1000MS/3000MS     Memory Limit:65536KByteTotal Submit: 416            Accepted:130 Description Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况.Tiger拿出了公司的账本,账本上记录了公司成立以来每天的营业额.分析营业情况是一项相当复杂的工作.由于节假日,大减价或者是其