今日天晴 宜休息。
开学了,又是换实验室。不过是另外一个社团。
去年经历的有点多,今年开年就显得平平无奇。
开始有点摆了。
其实工作还是挺多的,一方面是社团的日常工作,另外一方面就是以前欠下的工作。
比赛的话已经有点不想打了。到了大二下的这个时期,很多东西也差不多想明白了一点。
其实最主要的就还是对于很多需要“拼劲”作为前置条件的事情,我已经有了一点排斥。
节奏就慢慢的慢了下来。
友谊方面还是不行,虽然很多地方都能融进去,但是还是和以前一样,一但要深交就有某种恐惧,客观上来说这种应该是潜意识的影响,很多时候,我都不知道为什么就已经做出了把别人推出我舒适圈的行为。
可能还是打游击式的在各个不同程度的友谊圈子之间来回游走满足自己的情绪需要。
我还是挺自私的一个人。不是啥好人。
但是能够彻底的当一个自私的人也没什么不好的,对别人也会做一些筛选,自己会舒服一点,也不会影响看不惯我的人。
我就是这样小心翼翼的活着。
没有很强烈的想要获得什么的欲望,也没有什么很想实现的理想,更没有什么必须完成的使命。
我就是这样简简单单的活着,这样也没什么不好的。
我到现在已经想明白了,社团的工作能推就推掉,尽量降低在社团的话语权,比赛已经报名的打完,然后答应打的打完,之后就不打新比赛了。
剩下的时间就自己学点想学的,有空的时候出去转转,和别人一块到处玩,吃点好吃的。这样已经是来之不易的幸福。
希望我们都好好的。

2026了,但是没有好好的在博客上面写过新年祝福。
应该说去年10月份之后就没有再发过博客了。
其实期间一直有在酝酿,但是一直写不出来。
感觉每每情绪到了某一个节点之后总是差一点。
(当然也有总是被什么事情拖着,不能静下心来
我以前一直是那种有点幻想的人,同时也是很卑劣的人。
现在已经没有幻想了,只剩卑劣了。
我认为我很卑劣的原因是因为我不是很想为群体付出什么,从旁观者来看,这种不为集体做贡献的人明显是卑劣的。
实际上我只是懒,其实就算是对自己也称不上有多称职。假设真的有一本人生说明书摆在我的面前。我可能,哦不,应该说是肯定只会在翻上几页之后就兴致缺缺,并吹个口哨,对空气说:“哎呀,其实没必要看什么说明书的”。
我的卑劣不仅仅体现在这里其实也体现在其他地方,但是因为实在太多就不一一列举了。实际上,我其实也无法准确的说出我卑劣的地方。我只是隐隐有一种感觉就是我是一个卑劣的人。
但是其实这是没有关系的,因为我其实是一个极有分寸的人,诚然,我不会对除自己之外的其他人做额外的义务,但是也不会过多的,或者说是很讨厌去麻烦别人。
在以前我就是一个很害怕和别人做交流的人,因为害怕受到伤害。
后面我就渐渐发现其实不和别人做交流确实受不到伤害。但是这样之后我的社交能力就越来越弱了。
我很讨厌成为领导者的原因也是在这边,实际上我并没有无私奉献的精神,是一个很自私的人,也没有责任心。
以前没有觉得,现在认为主动去当某个集体的领袖,如果无利可图,并且也没有情绪价值,真的会很痛苦。
除非说有某种信念。
实际上所有困难的事情,如果没有外驱力,也没有某种信念是很难坚持的。
我可能是有某种信念的。
最近一直在做的事情主要就是当社长,当社长实际上就是当老师的传话筒,并且跑跑腿。

在 VScode 中配置前端代码格式化,可以通过以下几个步骤进行:

1. 安装 Prettier 插件

Prettier 是一个流行的代码格式化工具,支持很多编程语言,包括 JavaScript、TypeScript、HTML 和 CSS。

  • 打开 VScode,点击左侧的 扩展(Extensions)图标,搜索并安装 Prettier - Code formatter

2. 配置 Prettier

通过修改 .vscode/settings.json 文件来配置 Prettier 格式化选项:

  • 在 React 项目的根目录下创建(如果没有的话)一个 .vscode/settings.json 文件,添加以下内容:

    {
    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "editor.formatOnSave": true, // 保存时自动格式化
    "prettier.singleQuote": true, // 使用单引号
    "prettier.trailingComma": "es5", // 在可能的情况下,添加尾随逗号
    "prettier.semi": true, // 结尾加分号
    "prettier.tabWidth": 2 // 缩进宽度
    }

3. 配置项目中的 .prettierrc 文件(可选)

为了让团队中的每个人都使用相同的代码格式,可以在项目根目录下添加一个 .prettierrc 配置文件,内容如下:

{
  "singleQuote": true,
  "trailingComma": "es5",
  "semi": true,
  "tabWidth": 2
}

这样,无论是使用 Prettier 插件,还是通过命令行运行 prettier,都会遵循这些配置。

单调队列

单调队列相比于一般的队列来说,多了一个队尾出队。
一般的队列是秉持先进先出的原则,所以是队尾入队,对头出队。

单调队列中的元素相比于一般队列来说,多了单调性。队列内的元素始终保持单调,即单调递减或者单调递增。

队尾出对的条件:队列不空(应对第一个加入的元素)且有新元素加入时,新元素更优。
这个新元素更优分两种情况。如果是单调递增的一组元素来说。队尾进入的元素是越小越优,也就是越小越可以排到前面。所以当元素入队之后可以使用while循环对从队尾开始的每一个元素进行判断,如果比它大就踢出队列,直到队列为空或者遇到第一个比新元素小于或者等于的元素。然后将新元素加入队列。对于单调递减的一组元素来说,这个更优的情况就是元素越大越优,越可以排到前面。

队头出队的条件是队头元素滑出窗口
例程:

#include <bits/stdc++.h>

using namespace std;
int q[1000]; 
int a[1000];
int k, n;

int main()
{
    int h = 1, t = 0;
    cin >> n >> k;
    for (int i = 1; i <= n; i ++)
        cin >> a[i];
    for (int i = 1; i <= n; i ++)
    {
        while (t >= h && a[q[t]] >= a[i]) t --;
        q[++t] = i;
        if (q[h] < i - k + 1) h ++;
        if (i >= k) printf("%d ", a[q[h]]);
    }
    return 0;
} 

单调队列是用来维护一个滑动的定长窗口内的单调序列,从队头取最值,进行计算或者转移。

单调栈是维护一个固定的变长窗口[1, i]内的单调序列,从栈顶取最值,进行计算或转移。
每个元素从栈顶入栈,淘汰元素从栈顶出栈。

淘汰的机制是和单调队列相似的,也是如果要维护一个单调递减的序列,从栈顶取的是最大值,则越大越优,维护一个单调递增的序列,从栈顶取最小值,越小越优

例程:

#include <bits/stdc++.h>
using namespace std;
const int N = 3e6 + 10;
int a[N];
int q[N];
int ans[N];

int main()
{
    int n;
    cin >> n;
    for (int i = 1; i <= n; i ++)
        cin >> a[i];
    int top = 0;
    for (int i = 1; i <= n; i ++)
    {
        while (top > 0 && a[q[top]] < a[i])
        {
            ans[q[top]] = i;
            top --;
        }
        q[++top] = i;
    }
    
    for (int i = 1; i <= n; i ++)
        cout << ans[i] << ' ' ;
    return 0;
}