区域赛第33天

1、最近感觉自己的时间可以利用好的,但是就是自己的学习效率比较低,主要问题就是一旦放松下来就会放松很长的时间,所以说浪费了很多的时间。。。

2、现在最重要的就是从心底相信自己真的能拿金牌,所以就是现在主要的任务就是恢复信心,所以我不能看题解,晚上的时候可以找个地方好好的看看题解。

3、然后就是最近自己的身体好像不是那么的好,所以不能熬夜。。。

4、组队赛感觉好像不能很好对的进行,因为队友都回家了,所以还是好好的提高的自己的实力还是好的。

5、明天的时候就是不能放松,累的时候就谢谢总结或者看看mooc。

6、明天的任务就是把那次的题全部的补完,然后就是紫书dp写3-7个题,然后就是把总结写完,就是这个样子。

7、明天时候看看自己能真正的学习多长的时间。

8、睡觉,GOGOGOGO

9、左偏树,就是一个可以支持合并的堆,感觉还是很好用的,下面给出模板,题目 HDU 1512

#include<bits/stdc++.h>
using namespace std;
int pre[100002];
int rear;
struct node
{
    int dis,key,l,r;
}D[101111];
void inist(int n)
{
    rear=0;
    D[0].dis=-1;
    for(int i=1;i<=n;i++)
    {
        pre[i]=i;
    }
}
int It_new(int key)
{
    rear++;
    D[rear].l=D[rear].r=0;
    D[rear].key=key;
    D[rear].dis=0;
    return rear;
}
int It_merge(int r1,int r2)
{
    if(!r1) return r2;
    if(!r2) return r1;
    if(D[r1].key<D[r2].key)
    {
        swap(r1,r2);
    }
    D[r1].r=It_merge(D[r1].r,r2);
    if(D[D[r1].l].dis<D[D[r1].r].dis)
    {
        swap(D[r1].l,D[r1].r);
    }
    D[r1].dis=D[D[r1].r].dis+1;
    return r1;
}
int It_pop(int &rt)
{
    int ret=D[rt].key;
    rt=It_merge(D[rt].l,D[rt].r);
    return ret;
}
void It_push(int &rt,int key)
{
    rt=It_merge(rt,It_new(key));
}
int find(int x)
{
    return x==pre[x]?x:pre[x]=find(pre[x]);
}
int main()
{
   int n;
   while(~scanf("%d",&n))
   {
       inist(n);
       for(int i=1;i<=n;i++)
       {
           int x;
           scanf("%d",&x);
           It_new(x);
       }
       int m;
       scanf("%d",&m);
       while(m--)
       {
           int x,y;
           scanf("%d%d",&x,&y);
           x=find(x); y=find(y);
           if(x==y) printf("-1
");
           else
           {
               int rt=It_merge(x,y);
               int temp=rt;
               int ans=It_pop(rt);
               ans/=2;
               printf("%d
",ans);
               D[temp].l=D[temp].r=0;
               D[temp].key=ans;
               D[temp].dis=0;
               rt=It_merge(rt,temp);
               pre[x]=rt; pre[y]=rt;
               pre[rt]=rt;
           }
       }
   }

}

  

原文地址:https://www.cnblogs.com/Heilce/p/7616490.html