区域赛第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\n");else{int rt=It_merge(x,y);int temp=rt;int ans=It_pop(rt);ans/=2;printf("%d\n",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
總結
- 上一篇: 管理员方式运行不能访问网络驱动器
- 下一篇: 仿excel的网页版excel