/ Randle /

记录详情

Wrong Answer


  
# 状态 耗时 内存占用
#1 Wrong Answer 3ms 276.0 KiB
#2 Wrong Answer 3ms 336.0 KiB
#3 Wrong Answer 3ms 384.0 KiB
#4 Wrong Answer 4ms 384.0 KiB
#5 Wrong Answer 3ms 344.0 KiB
#6 Wrong Answer 3ms 256.0 KiB
#7 Wrong Answer 3ms 356.0 KiB
#8 Wrong Answer 3ms 344.0 KiB
#9 Wrong Answer 3ms 384.0 KiB
#10 Wrong Answer 3ms 356.0 KiB

代码

//treap数据结构的代码实现保存
#include<bits/stdc++.h>
inline void read(int &a)
{
	a=0;char c=getchar();
	while(c<'0'||c>'9')c=getchar();
	while(c>='0'&&c<='9')
	{
		a=(a<<1)+(a<<3)+c-'0';
		c=getchar();
	}
}
inline void write(int a)
{
	if(a<0){putchar('-');a=-a;}
	if(a>9)write(a/10);
	putchar(a%10+'0');
}
struct node
{
	int order,key,num;
	node* son[2];
	inline int comp(int x)
	{
		if(key==x)return -1;
		if(x<key)return 0;
		return 1;
	}
	inline bool operator>(const node* &b)
	{
		if(order>b->order)return true;
		return false;
	}
};
inline node newnode(int x)
{
	node p; 
	p.son[0]=p.son[1]=0;
	p.order=rand();
	p.num=0;
	p.key=x;
	return p;
}
inline void update(node* &p)
{
	p->num=1;
	if(p->son[0]!=NULL)p->num+=p->son[0]->num;
	if(p->son[1]!=NULL)p->num+=p->son[1]->num;
}
inline void rotate(node* &p,int d)
{
	node* t=p->son[d];
	p->son[d]=t->son[d^1];
	t->son[d^1]=p;
	update(p);update(t);
}
inline void insert(node* &p,int x)
{
	int d=p->comp(x);
	if(d==-1)return ;
	insert(p->son[d],x);
	if(p->son[d]>p)rotate(p,d);
	else update(p);
}
inline void remove(node* &p,int x)
{
	int d=p->comp(x);
	if(d==-1)
    {
        node *u=p;
        if(p->son[0]!=NULL&&p->son[1]!=NULL)
        {
            int dd;
			if(p->son[0]>p->son[1])dd=0;
			else dd=1;
            rotate(p,dd);
            remove(p->son[dd],x);
        }
        else
        {
            if(p->son[0]==NULL)p=p->son[1];
            else p=p->son[0];
            delete u;
        }
    }
	else remove(p->son[d],x);
}
int main()
{
	srand(time(NULL));
	return 0;
}

信息

递交者
类型
递交
题目
辣鸡
题目数据
下载
语言
C++
递交时间
2017-11-24 20:34:50
评测时间
2017-11-24 20:34:50
评测机
分数
0
总耗时
35ms
峰值内存
384.0 KiB