sumire
(アイラちゃん)
1
Vanitas Vanitatum Et Omnia Vanitas.
虚空的虚空,一切尽为虚空。《般若波罗蜜多心经》亦有言:“观自在菩萨,行深般若波罗蜜多时,照见五蕴皆空,度一切苦厄”。
古今中外,英雄豪杰无不如过江之鲫,于兴盛之时,凭天时地利人和,独领风骚,傲立潮头。殊不知千年之后,虽有“樯橹灰飞烟灭”之气魄,亦不免消失于滚滚历史洪流。
泛泛之辈如我,唯有专注于当下,珍惜自我所有之物,珍惜身边亲近的人,默默地走完本科的最后一段旅程。2025 年 06 月至 2026 年 06 月,我愿在此处不定期地记录下属于自己的一切。
一切皆空,唯有当下愈加贵重。万事喧嚣,愿有一方清静独处之处。愿此处小楼能成为承载我接下来一年的喜怒哀乐,愿自己能够在互联网的一角,留下属于自己的一点点痕迹。
开楼就用我最喜欢的一部动画《可塑性记忆 (プラスチックメモリス)》中的题词送给大家,也送给自己:
愿你有朝一日,能与珍爱之人再次相逢
提示:可能有时候 lz 会有很负面的情绪,或者不恰当的表述,先向大家表示抱歉,如果楼主说了什么不太好的话或者令大家伤心的话,提示一下 lz 或者屏蔽楼主就好了,先向大家表示歉意,对不起,谢谢大家 
楼里会有什么?
- 可愛いアイラちゃん
- 各种可能的动漫截图
- 每天的生活
- 风景图?周边地图?

- lz 的焦虑和不安 (很抱歉,有时候控制不了自己
)
- 可能的焦虑传播 (对不起,请一定要提醒 lz 删除(私信发帖都可以))
- 可能的压力和不安
9 Likes
sumire
(アイラちゃん)
3
开篇先给出自己的假期计划吧!
古人有云:“取法乎上,仅得其中。取法乎中,仅得其下。”所以目标要兼具挑战性和可行性。
暑假的三个月打算:
上午 7:00 左右起床
上午:leetcode,复习数据结构,与其他 408 科目,顺序打算为数据结构 → 计算机组成 → 操作系统 → 计算机网络。这些科目アイラちゃん在期末都是 90 分左右,因此希望会顺利一些 QAQ,为考研/推免都做好两手准备 
中午/下午:做实验室实习的项目/阅读需要阅读的论文,或者在没有活的时候做一做 15445/6.824,学习 C++/Go。毕竟有希望就要去争取!
晚上:继续复习高数/线代。等到线性代数复习结束后再开概率论和数理统计。并且最后复习一些单词(不过英语应该不需要太担心,アイラちゃん很努力地通过了 Toefl, R25L25S25W26!)
希望自己能完成这个暑假的计划,fight on!!!
1 Like
Revan
4
cy 
アイラちゃん(指插图中的艾拉)今日もちょ可愛いです 
2 Likes
Revan
6
3 Likes
sumire
(アイラちゃん)
7
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,这门语言还是很有属于自己的风范的,感觉有集百家之长的特性,希望我能稍微掌握一下吧~(这也是兴趣的一部份呢)
最后,提前祝大家晚安好梦的说!
也祝大家期末顺利!
1 Like
sumire
(アイラちゃん)
8
口瓜怎么日记帖被拿下了
5 月 30 日的日记贴变成垃圾消息被 Akismet ちゃん拿下了 
是不是主包发 leetcode 题目和代码重复性太高被拿下了 
1 Like
Revan
9
我们土塬貌似是这样的
不时会出现这种吞帖的情况
感觉可以向站务提出说明?
1 Like
sumire
(アイラちゃん)
13
有 C/C++ 基础看起一门新的语言还是很快的,只是迫切地需要熟练度
从例子入手后再去仔细地阅读语法,希望这样能够快速入门 Go, 然后尝试 6.824
p.s.现在变成 6.5840 了,待我学会 go+ 有时间后尝试一下 
2 Likes
sumire
(アイラちゃん)
14
每日一题 还是可以 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
不知不觉三个月了,希望有点进步的说
被 xiong 器裹挟的アイラちゃん
sumire
(アイラちゃん)
15
今天是端午节,祝塬友们端午快乐!
也祝 @萨卡兹雇佣兵 生日快乐 
3 Likes
sumire
(アイラちゃん)
17
惊觉一门课下周四有随堂考还有 40% 的分数
天塌了,我说怎么这门课没有大作业,原来是今天跟我说改成随堂考了
好好好 
发挥优良传统,一支笔,一个 graffiti,一个晚上,一个奇迹 
1 Like
sumire
(アイラちゃん)
19
2025 年 5 月 31 日
今天是五月的最后一天!端午假期快乐!
前情提要
于是战复习,复习模型压缩,剪枝,量化策略,复习 TPU 脉动阵列模型,数据流不变方式复用比,amdahl 定理,并行加速比 
不过已经复习完一半了!明天就可以复习结束的说!
明天可能要下大暴雨了,真讨厌下雨啊,每次鞋都会湿完,但是还是得来图书馆的,在宿舍只想睡觉就好了 
骑士团和狐狸小队的麻麻们
最后,祝大家晚安好梦~
4 Likes