记录 | 大学里的最后一段时光 #日记楼

日志 / 部落格 blog 3244 views 309 replies
#1 ·

Vanitas Vanitatum Et Omnia Vanitas.

虚空的虚空,一切尽为虚空。《般若波罗蜜多心经》亦有言:“观自在菩萨,行深般若波罗蜜多时,照见五蕴皆空,度一切苦厄”。

古今中外,英雄豪杰无不如过江之鲫,于兴盛之时,凭天时地利人和,独领风骚,傲立潮头。殊不知千年之后,虽有“樯橹灰飞烟灭”之气魄,亦不免消失于滚滚历史洪流。

泛泛之辈如我,唯有专注于当下,珍惜自我所有之物,珍惜身边亲近的人,默默地走完本科的最后一段旅程。2025 年 06 月至 2026 年 06 月,我愿在此处不定期地记录下属于自己的一切。

一切皆空,唯有当下愈加贵重。万事喧嚣,愿有一方清静独处之处。愿此处小楼能成为承载我接下来一年的喜怒哀乐,愿自己能够在互联网的一角,留下属于自己的一点点痕迹。

开楼就用我最喜欢的一部动画《可塑性记忆 (プラスチックメモリス)》中的题词送给大家,也送给自己:

愿你有朝一日,能与珍爱之人再次相逢大切な人と、いつかまた巡り会えますように

image|690x388

提示:可能有时候 lz 会有很负面的情绪,或者不恰当的表述,先向大家表示抱歉,如果楼主说了什么不太好的话或者令大家伤心的话,提示一下 lz 或者屏蔽楼主就好了,先向大家表示歉意,对不起,谢谢大家 🥰

楼里会有什么?

  • 可愛いアイラちゃん
  • 各种可能的动漫截图
  • 每天的生活
  • 风景图?周边地图?
  • 🐷 😋 🤡
  • lz 的焦虑和不安 (很抱歉,有时候控制不了自己 🥲)
  • 可能的焦虑传播 (对不起,请一定要提醒 lz 删除(私信发帖都可以))
  • 可能的压力和不安
❤️🤗️🥰️
16
#2 · (edited)

cy :tieba_huanhu:
是新日记楼!
祝 lz 生活顺利🥹

长恨此身非我有 何时忘却营营

❤️
1
#3 · (edited)

开篇先给出自己的假期计划吧!
古人有云:“取法乎上,仅得其中。取法乎中,仅得其下。”所以目标要兼具挑战性和可行性。
暑假的三个月打算:
上午 7:00 左右起床
上午:leetcode,复习数据结构,与其他 408 科目,顺序打算为数据结构 -> 计算机组成 -> 操作系统 -> 计算机网络。这些科目アイラちゃん在期末都是 90 分左右,因此希望会顺利一些 QAQ,为考研/推免都做好两手准备 🫠
中午/下午:做实验室实习的项目/阅读需要阅读的论文,或者在没有活的时候做一做 15445/6.824,学习 C++/Go。毕竟有希望就要去争取!
晚上:继续复习高数/线代。等到线性代数复习结束后再开概率论和数理统计。并且最后复习一些单词(不过英语应该不需要太担心,アイラちゃん很努力地通过了 Toefl, R25L25S25W26!)
希望自己能完成这个暑假的计划,fight on!!!

❤️
2
#4 · (edited)

cy :shuiyuan3:
アイラちゃん(指插图中的艾拉)今日もちょ可愛いです 🥰

❤️
2
#5 ·

image|690x417

🥰

❤️🥰️😍️
5
#6 ·
sumire アイラちゃん

🥰 🥰
艾拉可爱捏
如果能让アイラちゃん做我的彼女我就算住大别野也愿意口牙 :bilibili_aojiao:

❤️🥰️
4
#7 · (edited)

2025 年 5 月 30 日 星期五 天气:晴/多云

上午刷 leetcode,复习了一下 dijkstra 算法,正好今天的每日一题也是 dijkstra 算法~

2359. 找到离给定两个节点最近的节点

C++
class Solution {
    int n;
public:
    void bfs(const vector<vector<int>> & graph, priority_queue<pair<int,int>, vector<pair<int,int>>, greater<pair<int,int>>> & pq, vector<int> & distance, vector<int> & visited, const int & node) {
        visited = vector<int>(n, 0);
        pq.emplace(0, node);
        visited[node] = 1;
        distance[node] = 0;

        while(!pq.empty()) {
            const auto [dist, cur] = pq.top();
            pq.pop();
            for(const auto & adj: graph[cur]) {
                if(distance[adj] > distance[cur] + 1) {
                    distance[adj] = distance[cur] + 1;
                    pq.emplace(distance[adj], adj);
                }
            }
        }
    }
    int closestMeetingNode(vector<int>& edges, int node1, int node2) {
        n = edges.size();
        vector<vector<int>> graph(n);
        for(int i = 0; i < n; i++) {
            if(edges[i] == -1) continue;
            graph[i].emplace_back(edges[i]);
        }
        priority_queue<pair<int,int>, vector<pair<int,int>>, greater<pair<int,int>>> pq;
        vector<int> distance1(n, INT_MAX / 2);
        vector<int> distance2(n, INT_MAX / 2);
        vector<int> visited;

        bfs(graph, pq, distance1, visited, node1);
        bfs(graph, pq, distance2, visited, node2);

        // Get the distance. Then check the answer.
        int ans_dist = INT_MAX / 2;
        int ans = -1;

        for(int i = 0; i < n; i++) {
            int tmp_ans = max(distance1[i], distance2[i]);
            if(ans_dist > tmp_ans) {
                ans_dist = tmp_ans;
                ans = i;
            }
            else if(ans_dist == tmp_ans) {
                ans = min(ans, i);
            }
        }
        return ans == INT_MAX / 2 ? -1 : ans;
    }
};

2642. 设计可以求最短路径的图类

C++
class Graph {
    vector<vector<pair<int,int>>>graph;
    vector<int> visited;
    vector<int> distance;
    int n;
public:
    Graph(int n, vector<vector<int>>& edges) {
        graph = vector<vector<pair<int,int>>>(n);
        for(const auto & edge: edges) {
            int from = edge[0], to = edge[1], edgeCost = edge[2];
            graph[from].emplace_back(to, edgeCost);
        }
        Graph::n = n;
    }
    
    void addEdge(vector<int> edge) {
        int from = edge[0], to = edge[1], edgeCost = edge[2];
        graph[from].emplace_back(to, edgeCost);
    }
    
    int shortestPath(int node1, int node2) {
        priority_queue<pair<int,int>, vector<pair<int,int>>, greater<pair<int,int>>> pq;
        visited = vector<int>(n, 0);
        distance = vector<int>(n, INT_MAX / 2);
        pq.emplace(0, node1);
        distance[node1] = 0;
        while(!pq.empty()) {
            const auto [dist, cur] = pq.top();
            pq.pop();
            if(visited[cur]) continue;
            visited[cur] = 1;
            for(const auto & adj: graph[cur]) {
                const auto [adj_to, adj_w] = adj;
                if(distance[adj_to] > distance[cur] + adj_w) {
                    distance[adj_to] = distance[cur] + adj_w;
                    pq.emplace(distance[adj_to], adj_to);
                }
            }
        }
        return distance[node2] == INT_MAX / 2 ? -1 : distance[node2];
    }
};

/**
 * Your Graph object will be instantiated and called as such:
 * Graph* obj = new Graph(n, edges);
 * obj->addEdge(edge);
 * int param_2 = obj->shortestPath(node1,node2);
 */

3342. 到达最后一个房间的最少时间 II

C++
constexpr int directions[4][2] = {{-1,0},{1,0},{0,-1},{0,1}};
class Solution {
public:
    int minTimeToReach(vector<vector<int>>& moveTime) {
        // [dist, x, y];
        priority_queue<tuple<int,int,int>, vector<tuple<int,int,int>>, greater<tuple<int,int,int>>> pq;
        pq.emplace(0, 0, 0);
        int rows = moveTime.size(), cols = moveTime[0].size();
        vector<vector<int>> distance(rows, vector<int>(cols, INT_MAX / 2));
        vector<vector<int>> visited(rows, vector<int>(cols, 0));
        distance[0][0] = 0;

        while(!pq.empty()) {
            const auto [dist, x, y] = pq.top();
            pq.pop();
            if(visited[x][y]) continue;
            visited[x][y] = 1;
            for(int i = 0; i < 4; i++) {
                int nx = x + directions[i][0], ny = y + directions[i][1];
                if(nx >= 0 && nx < rows && ny >= 0 && ny < cols) {
                    int temp_distance = max(dist, moveTime[nx][ny]) + (x+y) % 2 + 1;
                    if(temp_distance < distance[nx][ny]) {
                        distance[nx][ny] = temp_distance;
                        pq.emplace(temp_distance, nx, ny);
                    }
                }
            }
        }
        return distance[rows - 1][cols - 1];
    }
};

跟着 灵神的题单 走感觉有进步的说!

然后折磨アイラちゃん四天只睡了 16 个小时的 PPG 算法也算是成功实现了,并且确实收敛的速度更快,只是为什么稳定性不好呢 QAQ

下午上数据库原理课,听不懂事务系统 🐷 时间戳控制事务法和 2PL 法更是稀里糊涂 🫠 后面暑假再仔细看看吧~反正不考

晚上学了一下 Go,这门语言还是很有属于自己的风范的,感觉有集百家之长的特性,希望我能稍微掌握一下吧~(这也是兴趣的一部份呢)

最后,提前祝大家晚安好梦的说! 🥰 也祝大家期末顺利!

❤️
3
#8 ·

口瓜怎么日记帖被拿下了 🥲 5 月 30 日的日记贴变成垃圾消息被 Akismet ちゃん拿下了 🥺

是不是主包发 leetcode 题目和代码重复性太高被拿下了 🫠

截屏 2025-05-30 22.28.04|690x388

❤️🤣️
4
#9 ·
sumire アイラちゃん

我们土塬貌似是这样的🤔不时会出现这种吞帖的情况
感觉可以向站务提出说明?

❤️
1
#10 · (edited)

站务应该会看到的,就不再单独麻烦他们了 🥺

akismet ちゃん好严厉,有坏坏的大姐姐感觉 🤣

#11 ·
sumire アイラちゃん

豪德 🫠

❤️
1
#12 ·

好饿,出去觅食了 🐖
好耶,帖子回来啦 🥰
谢谢站务 😘

❤️wave_gif
6
#13 · (edited)

有 C/C++ 基础看起一门新的语言还是很快的,只是迫切地需要熟练度

https://gobyexample.com/

从例子入手后再去仔细地阅读语法,希望这样能够快速入门 Go, 然后尝试 6.824

https://go.dev/doc/

p.s.现在变成 6.5840 了,待我学会 go+ 有时间后尝试一下 😋

https://pdos.csail.mit.edu/6.824/

❤️
3
#14 · (edited)

每日一题 还是可以 Dijkstra 的,毕竟 Dijkstra 就是 BFS 中的队列->优化队列而已~

909. 蛇梯棋 (2020M)(2025.05.31)

坐标变换让我成为 🐖

C++-1 (Dijkstra)
class Solution {
public:
    int n;
    int CheckTransfer(int nums, vector<vector<int>> & board) {
        int row, col;
        if(nums % n == 0) {
            row = n - nums / n;
            if(row % 2 != n % 2) {
                col = n-1;
            }
            else {
                col = 0;
            }
        } else {
            row = n - 1 - nums / n;
            if(row % 2 != n % 2) {
                col = (nums % n) - 1;
            }
            else {
                col = n - (nums % n);
            }
        }
        
        // // ** debug **
        // cout << nums << " at: (" << row << " ," << col << ")\n";
        return board[row][col]; 
    }
    int snakesAndLadders(vector<vector<int>>& board) {
        // Build Matrix.
        n = board.size();

        vector<int> distance(n*n+1, INT_MAX / 2);
        vector<int> visited(n*n+1, 0);
        priority_queue<pair<int,int>, vector<pair<int,int>>, greater<pair<int,int>>> pq;
        pq.emplace(0,1);
        distance[1] = 0;
        while(!pq.empty()) {
            // BFS to get the adjacent point.
            const auto [dist, cur] = pq.top();
            pq.pop();
            if(visited[cur]) continue;
            visited[cur] = 1;
            for(int i = cur + 1; i <= min(cur + 6, n * n); i++) {
                int transfer = CheckTransfer(i, board);
                int adj = transfer == -1 ? i : transfer;
                if(distance[adj] > distance[cur] + 1) {
                    distance[adj] = distance[cur] + 1;
                    pq.emplace(distance[adj], adj);
                }
            }
        }
        return distance[n * n] == INT_MAX / 2 ? -1 : distance[n * n];
    }
};
C++-2 (BFS)
class Solution {
public:
    int n;
    int CheckTransfer(int nums, vector<vector<int>> & board) {
        int row, col;
        if(nums % n == 0) {
            row = n - nums / n;
            if(row % 2 != n % 2) {
                col = n-1;
            }
            else {
                col = 0;
            }
        } else {
            row = n - 1 - nums / n;
            if(row % 2 != n % 2) {
                col = (nums % n) - 1;
            }
            else {
                col = n - (nums % n);
            }
        }
        
        // // ** debug **
        // cout << nums << " at: (" << row << " ," << col << ")\n";
        return board[row][col]; 
    }
    int snakesAndLadders(vector<vector<int>>& board) {
        // Build Matrix.
        n = board.size();

        vector<int> visited(n*n+1, 0);
        queue<pair<int,int>> q;
        q.emplace(1, 0);
        while(!q.empty()) {
            // BFS to get the adjacent point.
            const auto [cur, dist] = q.front();
            q.pop();
            visited[cur] = 1;
            for(int i = cur + 1; i <= min(cur + 6, n * n); i++) {
                int transfer = CheckTransfer(i, board);
                int adj = transfer == -1 ? i : transfer;
                if(visited[adj]) continue;
                if(adj == n * n) return dist + 1;
                visited[adj] = 1;
                q.emplace(adj, dist + 1);
            }
        }
        return -1;
    }
};
成就 badges

截屏 2025-05-31 10.07.49|690x197

不知不觉三个月了,希望有点进步的说

被 xiong 器裹挟的アイラちゃん

截屏 2025-05-31 10.09.37|474x500

❤️
1
#15 ·

今天是端午节,祝塬友们端午快乐!
也祝 @萨卡兹雇佣兵 生日快乐 🥰

❤️
5
#16 ·
sumire アイラちゃん

谢谢泥喵 :cherry_blossom_cat:(话说我也谢了泥好多次了 🤪)

❤️
1
#17 · (edited)

惊觉一门课下周四有随堂考还有 40% 的分数
天塌了,我说怎么这门课没有大作业,原来是今天跟我说改成随堂考了
好好好 🥺

发挥优良传统,一支笔,一个 graffiti,一个晚上,一个奇迹 🐖

❤️
3
#18 ·
sumire アイラちゃん
アイラちゃん,post:7, topic:14653, username:sumire:

集百家之长的特性

好乐,难得见一个不骂的

❤️
1
#19 · (edited)

2025 年 5 月 31 日
今天是五月的最后一天!端午假期快乐!

アイラちゃん,post:17, topic:14653, username:sumire:

惊觉一门课下周四有随堂考还有 40% 的分数
天塌了,我说怎么这门课没有大作业,原来是今天跟我说改成随堂考了

前情提要⬆️

于是战复习,复习模型压缩,剪枝,量化策略,复习 TPU 脉动阵列模型,数据流不变方式复用比,amdahl 定理,并行加速比 😴

不过已经复习完一半了!明天就可以复习结束的说!
明天可能要下大暴雨了,真讨厌下雨啊,每次鞋都会湿完,但是还是得来图书馆的,在宿舍只想睡觉就好了 🐖

骑士团和狐狸小队的麻麻们

1746972329978|353x500

最后,祝大家晚安好梦~

❤️
7
#20 ·

口瓜,已经下雨了,怎么回事口牙

❤️
4
#21 ·
sumire アイラちゃん

上海怎么天天下雨 :tieba_rage:

❤️
3
#22 ·
萨卡兹雇佣兵 神秘小维

江淮气旋 + 梅雨=暴雨 🥲

image|604x500

明天的雨势更加猛烈 😵‍💫

image|604x500

❤️😰️
4
#23 ·

2929. 给小朋友们分糖果 II (1701M)(2025.06.01)

数学题~ 祝大家儿童节快乐 :cat_crown:

Go
func distributeCandies(n int, limit int) int64 {
	var ans int64
	ans = 0
	for i := 0; i <= min(limit, n); i++ {
		ans = ans + int64(max(int64(min(limit, n-i)) - int64(max(n-i-limit, 0))+1, 0))
	}
	return ans
}
C++
class Solution {
public:
    long long distributeCandies(int n, int limit) {
        long long ans = 0;
        for(int i = 0; i <= min(limit, n); i++) {
            ans += (long long)max(min(limit, n-i) - max(n-i-limit, 0) + 1, 0);
        }
        return ans;
    }
};
❤️
4
#24 ·
萨卡兹雇佣兵 神秘小维

正在宾馆里躲雨 :sob_mouse:

此人不语,只是一味地在门里生产废料。

❤️
4
#25 ·

上午复习完了周四的考试,实现了昨天在 神秘小维的赛博小窝 的誓言 :cat_crown:

アイラちゃん,post:459, topic:14475, full:true, username:sumire:

借你吉言,明天一定一定认真复习 🫡

战论文,但是感觉看的很慢而且很难抓住要点
很想了解其他人是怎么快速看完论文,抓住要点并且学习的。一般一篇论文アイラちゃん总会花上 3-5 天(全力)才能看完......

下午看的论文是 sigcomm'14 很经典的 CONGA,一篇针对数据中心的分布式拥塞感知与负载均衡方案。(只看完了动机和目的。。。 🐷)

部分的要点

CONGA 观察到了 ECMP 在负载均衡方面的缺陷:

  • 爆发大流时受限于哈希随机分配,碰撞概率增大导致负载不均衡。
  • 仅关注局部信息而未关注到潜在下游通路的拥塞影响。
    导致了链路故障情况下即使有冗余也使得成功送达流量下降 40%。

并且,针对其他解决方案的不足:如中心化调度导致的数据中心场景下流量快速变化的反应不足,局部路由特性对全局掌握不佳,基于终端主机的传输层协议增加传输层复杂度并且无法控制绕开内核具有自身协议栈的高性能应用,提出了属于自己的方案:

  • 分布式框架,允许在 RTT 尺度下进行拥塞反应。
  • 全局拥塞信息控制,leaf-leaf 控制快速传输网络拥塞指标
  • 独立于传输层的网络层部署,避免影响终端主机和引入复杂的传输层控制。

需要满足:高效性,传输层独立,不对称性稳定,可增量部署,可以针对 Leaf-spine 拓扑优化。

img

晚上要复习数学了~论文明天再继续看,CONGA 是怎么设计的。

图来自 X: @ sei_umehara

image|690x418

❤️
4
#26 · (edited)
sumire アイラちゃん

看不懂喵😭
窝是来看美图的喵 🫠

❤️
2
#27 ·

尽力做到每大更一次贴一张图 🥰

❤️
1
#28 ·
sumire アイラちゃん

好的喵 🥰

#29 ·

2025 年 6 月 1 日 星期一 天气:中雨

上午:

https://xjtu.app/t/topic/14653/23

下午:

https://xjtu.app/t/topic/14653/25

晚上:
先结束了一元积分的基础复习。先把知识点和基础题都过一遍就好。
数学复习到了多元函数微分,最为头疼的还是多元函数连续/可导/可微/存在极限的关系,还是要记一下这张图 😵‍💫

截屏 2025-06-01 22.36.14|690x112

祝各位晚安,好梦~ 🥰

X: @Tenkaichiho0

image|690x482

❤️
4
#30 ·
sumire アイラちゃん

lz 好自律🥹

长恨此身非我有 何时忘却营营

❤️
2
#31 · (edited)
青年杰出贡献上交大門人 紫金港第一皮革<・)))><<

大一大二一点不自律 🥲现在只是为了抱佛脚,看看能不能继续上学 😭
其实我更想打 MC,每天 🐖,但是边缘人太折磨了,又不想太早出来工作,想读硕士后再工作

❤️
4
#32 ·
sumire アイラちゃん

话说 LZ 有 paper 的 readlist 吗,还是组里相关的任务什么的

❤️
2
#33 · (edited)
Zerick Zerick

是暑期打算在实验室实践(必修,可以走企业实践也可以在学校实验室实践),偏网络仿真方向(开发),目前是学长给了“负载均衡”的相关文献调研,所以读论文,后面还要上 ns3 开发 😇

❤️
4
#34 ·
sumire アイラちゃん
アイラちゃん,post:31, topic:14653, username:sumire:

每天 🐖

我也想做一只快乐的皮革兔🥹

长恨此身非我有 何时忘却营营

❤️
2
#35 · (edited)
青年杰出贡献上交大門人 紫金港第一皮革<・)))><<

其实有好多想做的事
想自驾游从上海回家(海南海口),想学日语考过 N2 然后出国玩一下,想要自驾游从四川到西藏,有很多想做的事,如果有机会一定会好好玩一玩 😋

高考结束后的那个暑假几乎完全没有了,后面每个暑假都被小学期所占据,没有多少时间玩,有点可惜 🥲

悟已往之不谏,知来者之可追

❤️
4
#36 ·
sumire アイラちゃん
アイラちゃん,post:25, topic:14653, username:sumire:

很想了解其他人是怎么快速看完论文,抓住要点并且学习的。

+1,我现在非常容易陷入到实现里出不来,但是不看实现又 get 不到 paper 在干什么。
感觉还是读得太少了不知道学界现状,缺少 taste(x

❤️
4
#37 · (edited)
Zerick Zerick

对的,可能是需要积累吧。现在总是有很多陌生的术语/词汇,所以阅读的时候磕磕绊绊,但是读多了积累多了应该就快一些了 :cat_mouse:

❤️
3
#39 ·
sumire アイラちゃん
アイラちゃん,post:35, topic:14653, username:sumire:

想自驾游从上海回家(海南海口),想学日语考过 N2 然后出国玩一下,想要自驾游从四川到西藏

好厉害啊🥹
希望 lz 有朝一日能实现这些目标吧

长恨此身非我有 何时忘却营营

❤️
2
#40 ·
sumire アイラちゃん

同 😭驻波感觉目前不靠任何辅助阅读的手段就会读的很慢,或者晕乎乎的💦常常是看到一半就忍不住让 GPT 翻译了 + 总结要点

❤️
5