In mathematics you don't understand things, you just get used to them.

分类 文章 下的文章

标题并不是什么转折点的意思,不过是无力之人的无病呻吟,寄托于非母语的文字而少些羞愧地做出一些感慨吧。

写真实游记前大概想扯些闲话。毕竟内囊总需要包装才显得珍贵、稀罕,甚至于惊恐与光怪陆离。升入高中后对一些事物的改观该说是很大的罢,之前对某个知乎问答下大众的看法不屑一顾,认为是「罔眼现状而夜郎自大的白日梦想家们的狂吠」。如今入世后发现世人的看法有时是精炼的一针见血的,以至于很难去否定。现实却是比剧作品更为魔幻,赛博朋克与荒诞有时竟已隙入现实这般深入。可以望见的有朝一日加缪是否也可以被称作为现实主义作家呢?或许又是在等待另一个戈多,生活至上。之前一直认为杂学知识家,类似于西尾维新吧,是抽象而虚幻的存在,最近却发现不凭借相当的杂学储备,抒情反而成为了一桩困难异常的事情。大概是因为我没有文化罢!

即便如此,也不想成为过于结构化而丧失自我的中年人。

接下来开始说说本篇的 csp 2022 罢。

考前近乎没怎么复习了,初中三年的完败是叫人心灰意冷的。坐在机房也不知道该干什么,就看看题,也没有什么写的欲望。上机,看题,发愣,关机,文化课。这般循环。

这般循环。这般循环。这般循环。这般循环。这般循环。这般循环。这般循环

还剩一个小时。idsy 叫我去踢球,很开心地就去了。被爹接到了考场。

几乎是主场考试了吧。考试前碰上了初中的数学老师,到办公室喝了几口红茶(迫真)。老师容颜未改,精神依常,却升时过境迁感,盖牛顿时空观局限之处(指在重庆某些高中上学时间更快更多)。

拿到题的时候,觉得 T1 是个 atcoder 风格的签到题,T2 是简单题,T3 感觉有些高渺的数据结构,T4 是 ddp 或者倍增的喜闻乐见细节码题。

然后写了半个小时的 T1,发现写出来有些问题,就先放了。转而写 T2,分类讨论了一会儿就开始写了,写了大概半个小时左右,检查了一下分讨和代码,过了所有样例,感觉没啥细节,大样例看着也挺强的,就放了。T3 读了会儿题,看了两个性质,就开始想高妙维护连通性的数据结构,过了一个小时还是没想法,就搓了个暴力跑路了。从头到尾都没有随机化的想法,我简直就是个贵物!T4 看着很有感觉,考前写过差不离的码题。然后写了接近两个小时,就是过不了大样例 #2,后来大概感觉直接 dp 在 $k=3$ 的时候是假的,但没感觉出来不会只走链,我简直就是个纱布!反正最后就拼了个暴力和 $k=2$。

然后就是噩梦了,此时只剩半个小时了,T1 的代码还摆在那里没过。打死我也想不到栽在一道最为熟悉的 atcoder 风格题目上。

就这样出了考场。初中的班主任买了水等我们,不知为何悲伤便消减了一些。初中尽管被学校各种傻逼操作恶心了很多次,但毕竟三年的青春与回忆是在这扇假清华门内和张门下度过的,而回忆总是瑰丽的。

毕竟是 noip 模拟赛,所以没有什么特别后悔的感觉。我一直不知道这样的心态到底是好是坏,感觉退役人都没我心态这么平。之前和 sh 聊天的时候也说过,但也没什么结果。

向来不是很会写总结之类的东西,就不写了罢。

Rolling girl - wowaka / hatsune miku,which reminds me,有一些初心在里面罢。早一点的 V 曲偏向于硬鼓组,说这是 hako player 的坚守之一也不会过罢。现今较流行的 V 曲多为弱鼓组强旋律(虽然我觉得也很好听就是了!)。想一想,而我的初心——又会是什么,却又在哪里呢。

  架空历史随笔.txt

  然后内容挺贫乏的,看完觉得没啥信息量不要喷我。

  著名英国摇滚乐队 The Beatles 成立于 1960 年,在 1970 年解散。其蔓延对爱好摇滚的日本学生团体产生了巨大的影响,是那时还被称作朋克的团体中的高塔圆层。同时期同样在日流行的摇滚乐队还有 Cream、The Walker Brothers、The Rolling Stones、ProcolHum、The Monkees 等。当时散布于日本的摇滚咖啡馆就是摇滚朋克文化至深入腹的证言。

  Tagore、Rimbaud 等传统意义上被抬至崇高地位的诗人与评论家也在日本较发展的地域成为学生哥们口中的陈词。

  于 1969 年 1 月的东大学潮中孕育以切·格瓦拉、毛等社会主义人物为偶像的全共斗(全共闘、ぜんきょうとう),全体学生共同斗争组织的存在昭示了彼时学生对当权政府的不满。这一场左翼运动被形容为「昭和式的红色幻梦」。

  看向更局部的全共斗。「佐世保北高全学共斗会议(北高全共斗)」是全共斗的分支,由于一些野史料的支撑我们可以看到更有趣的事例:「北高全共斗的秘密指挥中心在佐世保车站上面,由车站朝北,走过没完没了的坡道,会看到一个香烟店,香烟店二楼就是北高全共斗的秘密指挥中心。」

  在东南亚,越南战争的打响成为整个亚洲地区几近最大的钟音。在「日本人竭力模仿欧洲人的一颦一笑,男宾们抽着哈瓦那雪茄,玩惠斯特牌;其他人则小口小口品着宴会上堆积如山的松露、果酱和冰激淋雪葩」的西化背景下,由美国支持的越南战争给许多民众的精神思想挂上的锁插进了一把若即若离的钥匙。美国军队藉由日本军港出兵,士兵与当地群众理所应当地产生了接触,混乱的性行为、冲突扮演了同样的角色。

  「校园封锁」是全共斗运动的一种表现形式,但不限于由全共斗组织完成,个人若有一定声望(能召集足够的同僚),同样可以实行校园封锁。具体而言,校园封锁是对校内进行大字报、漆涂字、垂幕标语等形式进行的校园范围内的政治理念、意识形态等的宣传。

我在写的是ざつだん唷,所以并不是在跟风写鲜花。我在 2020 甚至 2008 就开始写雑談,到现在两年甚至十四年,感触良深。

标题的时间是因为我断言我不会活到 22 世纪,那太抽象了。

最近放假了,所以想说一说在家闲散的日常。重(音众,意即器物之质量或密度大)庆的天气十分恐怖,往来热水龙头打开后须等得数分钟才得热水,如今打开冷水龙头却等得数分钟水才凉下。球场上的人理所应当的少了起来,但每日须得运动,遂决定每晚绕小区跑三圈三圈三圈三圈三圈三圈三圈三圈三圈。

今日跑步时遇一男子街头敲架子鼓,纯粹为了表演,而非乞讨或宣传,这恰是稀罕的。过往重(音众,意即器物之质量或密度大)庆的街头表演无非是磁器口的 joker,新饭店开张宣传而雇佣之老孃孃鼓队,乞讨为要的残肢人,和电吉他手。电吉他都已经十分罕见了,身也只在幼时见过两次。

说起街头表演,之前见过一个大学生毕业后提着音响在柏林街头唱 luv (sic) pt. 3 - Nujabes&Shing02,以作毕业礼物。我想这是 jazz hippop 的魅力,更是符号化「街头」概念本身的魅力。

在电脑里发现了 2019 年的骑砍文件。第一次玩 m&b 是在小升初的暑假,吃完午餐便加速润回机房打开 m&b,旁边 strelitzia 在看文豪野犬。那么 sh 在干嘛呢?sh 在打 cs1.6 和 ssjj 并在事后给电脑关机。那么 lyc 在干嘛呢?lyc 在用蓝牙往老年机里面拷歌,拷了 lost riversunity - tfr 到寝室当篝火使防止 strelitzia 等人侵入我寝;lyc 还在机房上装了 unity,虽然鸽子什么也没做就是了。

把时间线扯回来。今天我跑完在街头小摊吃了一份凉虾。凉虾是湖北而不是重(音众,意即器物之质量或密度大)庆的特色,但是夏日重(音众,意即器物之质量或密度大)庆街头常常可见。我吃凉虾不喜花生粒儿、芝麻或蜜饯丝,纯粹的红糖和冰块是足够的。毕竟是在夏日,不过图个凉快。

link。

好题啊。

首先有一个类 kruskal 暴力,就是对于每一个询问,把所有边按权值大小排降序,第一个加进去成为奇环的边就是答案。注意我们不需要关注偶环长成什么样子,所以我们实际上维护的是一棵生成树。这个可以用并查集维护结点到根的边的数量来实现。

因此我们需要关注的边只有 $O(n)$ 条了(生成树),那么维护一个区间的需要关注的边的边集,具体而言就是树边和奇环上的边。考虑用线段树,合并的时候用归并即可。

int n, m, q, fa[2100], dst[2100], ms, mh;
int u[1000100], v[1000100], w[1000100];
vi<bsi<int>> md;
bool flag;
int ldr(int x) {
    if (x != fa[x]) {
        int u = ldr(fa[x]);
        dst[x] ^= dst[fa[x]];
        return fa[x] = u;
    }
    return x;
}
int mrg(int x, int y) {
    int u = ldr(x), v = ldr(y);
    if (u == v) {
        if (dst[x] == dst[y]) return 2;
        return 0;
    }
    fa[v] = u;
    dst[v] = dst[x]^dst[y]^1;
    return 1;
}
bsi<int> mrg(const bsi<int>& lhs, const bsi<int>& rhs) {
    bsi<int> qwq, res;
    merge(lhs.begin(), lhs.end(), rhs.begin(), rhs.end(), back_inserter(qwq), [&](int x, int y) {
        return w[x] > w[y];
    });
    for (auto i : qwq) {
        fa[u[i]] = u[i], fa[v[i]] = v[i];
        dst[u[i]] = dst[v[i]] = 0;
    }
    for (auto i : qwq) {
        int tmp = mrg(u[i], v[i]);
        if (tmp) res += i;
        if (tmp == 2) {
            flag = 1;
            break;
        }
    }
    return res;
}
void upd(int now) {
    md[now] = mrg(md[now*2], md[now*2+1]);
}
int qry(int l, int r) {
    bsi<int> res;
    flag = 0;
    for (l += ms-1, r += ms; l < r; l >>= 1, r >>= 1) {
        if (l&1) res = mrg(res, md[l++]);
        if (r&1) res = mrg(md[--r], res);
    }
    if (flag) return w[res.back()];
    return -1;
}
signed main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    cin >> n >> m >> q;
    mh = ceil(log2(m)), ms = 1<<mh;
    md = vi<bsi<int>>(ms*2, bsi<int>());
    for (int i=1; i<=m; ++i) {
        cin >> u[i] >> v[i] >> w[i];
    }
    for (int i=1; i<=m; ++i) {
        md[i+ms-1] = bsi<int>({i});
    }
    for (int i=ms-1; i>=1; --i) {
        upd(i);
    }
    for (int l,r; q--;) {
        cin >> l >> r;
        cout << qry(l, r) << "\n";
    }
}

平面旋转。应该是比较好理解的版本。

我们对一个平面(逆时针)旋转 $\beta$ 度,无非就是对每一个有意义的向量 $\boldsymbol a = (x, y)$ 进行旋转。不妨考察单位向量 $\boldsymbol e = (\cos \alpha, \sin \alpha)$,令 $\boldsymbol a = k \cdot \boldsymbol e$,则由三角恒等变换得 $\boldsymbol e' = (\cos(\alpha + \beta), \sin (\alpha + \beta)) = (\cos \alpha \cos \beta - \sin \alpha \sin \beta, \sin \alpha \cos \beta + \sin \beta \cos \alpha)$,则 $\boldsymbol a' = k \cdot e'$。

令 $\beta = \frac{\pi}{4}$ 再把 $k$ 除以 $\sqrt 2$ 就得到切比雪夫距离转曼哈顿距离的式子了。