Description

Great Bytelandish的超级市场网络请你编写一个程序模拟促销商品的成本费用(simulating costs of the promotionbeing prepared)。推销商品要遵守以下规则:

1. 想参与促销的顾客在自己的帐单上写下个人信息,然后将票据投入一个特制的投票箱中。

2. 促销期间,每天结束后,有2张票据将被取出——消费金额最大的和最小的两张帐单。消费金额最大的那位顾客得到的奖品价值等于取出的2张帐单的差额。

3. 为了避免多次得奖,所有取出的帐单将不再放回箱中,其余的票继续参加促销活动.

由于商场的顾客特别多,所以每天投票箱中都至少有2张帐单。你的任务是计算在促销期间,商家一共要送出多少前的礼品。

Code

#include <cstdio>
#include <algorithm>
#define N 1000010
#define lc(x) T[(x)][0]
using namespace std; int T[N][2],fa[N],k[N],tot,rt,Ans; inline int read(){
int x=0,f=1;char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
return x*f;
} void rotate(int p){
int q=fa[p],y=fa[q],x=(T[q][1]==p);
T[q][x]=T[p][x^1];fa[T[q][x]]=q;
T[p][x^1]=q;fa[q]=p;
fa[p]=y;
if(y){
if(T[y][0]==q) T[y][0]=p;
else if(T[y][1]==q) T[y][1]=p;
}
} void splay(int x){
for(int y;y=fa[x];rotate(x))
if(fa[y]) rotate((x==lc(y))==(y==lc(fa[y]))?y:x);
rt=x;
} void Insert(int x,int v){
if(!rt){
rt=++tot;
T[rt][0]=T[rt][1]=0;
fa[rt]=0;
k[rt]=v;
return;
}
int y;
for(;;){
y=T[x][k[x]<v];
if(!y){
y=++tot;
k[y]=v;
T[y][0]=T[y][1]=0;
fa[y]=x;
T[x][k[x]<v]=y;
break;
}
x=y;
}
splay(y);
} void Del(int x){
splay(x);
if(T[x][0]*T[x][1]==0) rt=T[x][0]+T[x][1];
else{
int t=T[x][1];
while(T[t][0]) t=T[t][0];
T[t][0]=T[x][0],fa[T[t][0]]=t;
rt=T[x][1];
}
fa[rt]=0;
} int f(int x,int b){
while(T[x][b]) x=T[x][b];
int r=k[x];
Del(x);
return r;
} int main(){
int day=read();
while(day--){
int n=read();
while(n--) Insert(rt,read());
Ans+=f(rt,1)-f(rt,0);
}
printf("%d\n",Ans);
return 0;
}

[BZOJ2947]促销(Splay)的更多相关文章

  1. bzoj2947: [Poi2000]促销

    Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 178  Solved: 119[Submit][Status][Discuss] Descriptio ...

  2. 【bzoj2947】[Poi2000]促销

    2947: [Poi2000]促销 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 181  Solved: 120[Submit][Status][D ...

  3. BZOJ_2947_[Poi2000]促销_堆

    BZOJ_2947_[Poi2000]促销_堆 Description Bytelandish连锁超市委托你编写一个程序来模拟一项即将施行的促销活动,该活动的规则如下: ●想要参与的顾客,只需把他的个 ...

  4. BZOJ 1251: 序列终结者 [splay]

    1251: 序列终结者 Time Limit: 20 Sec  Memory Limit: 162 MBSubmit: 3778  Solved: 1583[Submit][Status][Discu ...

  5. [bzoj1269][AHOI2006文本编辑器editor] (splay模版题 or pb_ds [rope]大法)

    Description 这些日子,可可不和卡卡一起玩了,原来可可正废寝忘食的想做一个简单而高效的文本编辑器.你能帮助他吗?为了明确任务目标,可可对“文本编辑器”做了一个抽象的定义:   文本:由0个或 ...

  6. splay最终模板

    来自wjmzbmr的splay模板 #include<cstdio> #include<iostream> #include<algorithm> using na ...

  7. bzoj 3506 && bzoj 1552 splay

    查最小值,删除,翻转... 显然splay啊... #include<iostream> #include<cstdio> #include<algorithm> ...

  8. 【splay】文艺平衡树 BZOJ 3223

    Description 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区间是[2,4]的话,结果是5 2 3  ...

  9. 【填坑】bzoj3224 splay裸题

    人生第一道splay不出所料是一道裸题,一道水题,一道2k代码都不到的题 #include <cstdio> ,n,p,q; ],c[][],size[],sp[]; void rot(i ...

随机推荐

  1. idea没有绑远程地址,如何提交到github的空项目

    一 有同事问我怎么提交到github的空项目....这么简单.... 二 1.创建本地的git仓库 选择自己的项目 创建成功 2.添加代码,选中左边的文件,add 3.提交 5.定义远程仓库,不定义的 ...

  2. synchronized重入后抛出异常,锁释放了吗

    synchronized: 用于同步方法或者代码块,使得多个线程在试图并发执行同一个代码块的时候,串行地执行.以达到线程安全的目的. 允许重入: 在多线程的时候是这样的,但是对于单线程,是允许重入的, ...

  3. textArea 默认添加的空格

    1.会莫名多出一些空格(标签闭合换行了) <textarea class="borderstyle width97b height75" name="SmsTax. ...

  4. 如何将js导入时的小红叉去掉

    右键WebRoot-Myeclipse-Exclude From Validation

  5. Atcoder训练计划

    争取三天做完一套吧,太简单的就写一句话题解吧(其实也没多少会做的). 自己做出来的在前面用*标记 agc007 *A - Shik and Stone 暴力dfs即可,直接判断个数 *B - Cons ...

  6. Java字节流与字符流的区别详解

    字节流与字符流 先来看一下流的概念: 在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成. 程序中的输入 ...

  7. EBS应用重启

    重启系统应用 cd $ADMIN_SCRIPTS_HOME ./adstpall.sh apps/apps ./adstrtal.sh apps/apps 在重启应用时,可能会出现并发管理器未启动的情 ...

  8. intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)用法

    如果已经启动了四个Activity:A,B,C和D.在D Activity里,我们要跳到B Activity,同时希望C finish掉,可以在startActivity(intent)里的inten ...

  9. Android 超简单的拖动按钮 悬浮按钮 吸附按钮

    第一种    第二种    第一种实现方法 xml布局 <RelativeLayout xmlns:android="http://schemas.android.com/apk/re ...

  10. pecl install msgpack

    Before the beginning: There are two php version, php5.5, php7.1. we need to install msgpack under ph ...