0%

7.1

今天退宿的时候,发现我们宿舍周围的六间宿舍有七个人延毕/非正常毕业。着实吓人。后来看到张总宿舍周围好像没有延毕的。这就是数学/物理的含金量吗。

重温致理数学一字班保研水平。

7.2

拍完毕业照,今天的雨就淅淅沥沥地下了一整天。

中午和陈学长吃饭。

下!午!是!Vision!Pro!时!间!去西单大悦城体验了半个小时的Vision Pro,体验的人很多。我们来的晚,排队大概半小时吧。Vision Pro,画质好,但是没有想象中的好。可能是因为之前用其他VR设备比较少吧,对比其他设备应该优势挺明显的。空间视频是30帧的,透传还可以,但是播放沉浸式视频的时候,清晰度感觉真的很低很出戏。画面的FOV比较小,看近处的物体,近处的手比较费劲。手的抠图还需要加强。我特别喜欢多窗口的时候,把窗口放远,这个时候眼睛非常舒服。佩戴半小时之后,感觉不是很不适。但是可以想到佩戴一个小时以上就会很难受了。

晚上吃的西班牙餐厅。

阅读全文 »

最近在讲课的时候,竟然连续WA了一道线段树的题,一番debug下来才意识到自己犯了和很久之前一样的错误

个人习惯:打上lazy标记表示此区间内(包含此节点)的数据未更新。

修改时:直接返回要下放,查询子区间要下放,pushup前要将子区间的标记也下放。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void update(int x, int l, int r, int ql, int qr, const Mat &k) {
if (ql <= l && r <= qr) {
laz[x] *= k; // 打上lazy标记
down(x);// 立即下放标记
return;
}
down(x);// 更新子区间前先下放标记
gm;
if (ql <= mid) update(ls, l, mid, ql, qr, k);
else down(ls);
if (mid < qr) update(rs, mid + 1, r, ql, qr, k);
else down(rs);
// 注意,因为之后要pushup,所以左右区间都要正确更新,即,每个区间如果不访问,要特地pushdown一下,这样pushup结果才能对;
up(x);
}

注意,对于标记互相冲突(有先后顺序的标记),应该在进入节点时先pushdown一遍。

另外,在pushup时,一定要判断rs是否超过了线段树数组M的范围,不然就要开8倍的空间。这是因为有时候会pushdown叶子节点。

1
2
3
4
5
6
7
8
9
10
il void down(int x, int len)
{
if(laz[x]) {
sum[x] += laz[x] * len;
if(rs < M) {
laz[ls] += laz[x], laz[rs] += laz[x];
}
laz[x] = 0;
}
}