【游记】联合省选 2026 游记

· · 生活·游记

联合省选 2026 游记

字数统计:5287 字符

注意到本游记咕了很久,直到 3.19 开始编辑。

我怎么肝了 3h,累死我了喵。

感觉切题完全是意料之外的。

由于我是来旅游的,所以非常满意。

Day 0

报到日

跟随 xszx 神秘包车参考。

居然住在杭师大里面的神秘酒店 /jy 室友 chx

发现神秘大学居然无法使用微信支付 /fn。鉴定为杭师大知名校友 my 对其进行了经济垄断 /fn

马云你听我说 今天我来说说你

本人没有支付宝啊啊啊

品鉴了大学食堂。

::::info[晚饭]

::::

12rmb,还算合理吧。

严肃进入无人超市帮列巴巨佬购买大水,拜谢小猎豹 /bx

晚上进行了 OI 复健,随便打了下线段树和dijkstra板子,查看题解口糊了推箱子和幸运数字,当然还有重要的颓废环节。

和室友进行了一些讨论,/bx chx

为什么还是拖到 0:00 了…… /ll

5:00 和 6:00 分别莫名醒了一次,不过并无影响。

Day 1

联合省选 2026 Day 1

Win@2026SX_Day1#AK!

先大致看了下题目,然后进行一个缺省源的打。

首先把每个题目阅读一遍。哦这个 T1 背景怎么有点追忆的味道。不过拙劣模仿罢了 /fn

整场比赛中都没有注意到 recollector 的前缀是 recoll 有点唐。

然后思考 T1 ,快速发现了一下可以通过计算每条边为轻边概率乘上子树 size 求和得出。然后转化为尝试求解每个点为重儿子概率,感觉似乎需要背包状物解决,设计了一下关于重链长度的一些背包(实际上只是定义了一个状态),然后因为太菜所以什么都没有推出来,遂放弃,并带走输出 0 的 8 分。

这时候 10:30,去上厕所然后打后面暴力。带走了摩卡串的 15pts,然后因为场上饭堂 T2 B 性质没想出来,并且没有发现 T3 的 m=1 。

然后开始摆烂。测试了一下如何编写 .sh 批处理,然后尝试终端直接运行发现权限不足。(事实上需要 sh 文件名.sh

12:30 感觉很无聊,然后尝试乱打 T1 最低暴力,当然没有获得任何分数。

然后完赛了。

预计 8+15+0 = 23

查分后 0+15+0 = 15

T1 怎么挂成 0 了啊啊啊怎么输出个 0 都能挂啊啊。挂的分给明年 /kel。

时过境迁,小 B 回到了他梦寐以求,却又折戟沉沙的省选赛场。但他关于算法竞赛的记忆还有多少呢?其中又有多少最为珍贵的记忆值得去珍惜呢?小 B 是一个对算法竞赛充满热情,乐于探索的人。而对他来说,最珍贵的记忆便是学习算法时对其进行各种修改、实验,尝试得到一些新成果的日子吧。

小 B 想请你陪他一起,去找寻这些珍贵的记忆。

::::info[考场]

::::

Day 1.5

中饭食用黄焖鸡,然后只有上面 eps 块鸡肉下面全是伪装的土豆 ??? /fn/fn/fn

回到寝室颓。猎豹居然还是 florr 大神,严肃颓 florr。

晚饭去沙县小吃。沙县小吃是对的。鸭腿/鸡腿饭给到夯。/qiang

回到寝室颓。哦哦睡前搜索了如何执行 .sh 文件,学习并测试是对的。(给 Day2 带来巨大帮助)

严肃观赏 la 群大量P话。

::::info[制作的一些图片]

::::

Day 2

联合省选 2026 Day 1

TeamA$2026SX_Day2*AC~

Day1 祝我们 AK,Day2 就只祝 AC 了吗……

哦我还真有个 AC ()

考前教练:Day2 的每道题目都是会比 Day1 难的……你们调整一下策略……哦哦三道黑应该不太可能……

8:30 开考,我直接当作黑黑黑来打。诶我去两个交互,诶我去这个函数式交互我没写过诶 /jk/jk/jk 遂花费 30min 研究函数式交互以及联合编译应该怎么写。哦哦看懂了,严肃阅读 T1 题面。诶看完了,这个我当黑黑黑打吧(未思考)

2026@interaction!

然后 9:00 开始看后两题有什么能写的东西。看了 30min T2 之后看出了滚木。

星图铺就的,未必是归途。

但有人循着它,便不算迷路。

感觉是很唐的两句话,出题人对追忆的拙劣模仿罢了。

9:30 看 T3。诶这个让我想起一个叫 mindustry 的游戏。题面又臭又长。诶这个机器生产好奇葩啊,诶这个叶子机器应该有个权值吧……

什!么!机器产出滚木!!

?!哇,滚木机器把滚木机器生产出的滚木加工为滚木套滚木,哇!?

然后接着看。

什?么?滚木比大小??

哇,气笑了。

严肃看不懂滚木怎么排序。总之发现了一下根节点生产的滚木一定是最大的。然后就可以发现第二个点是 lca 板子,以及第一个点是可做的手算分讨表格的史。

10:00 ,感觉后两题没分了开 T1。

随便手玩一下。可以发现只有查询包含 0 的区间才是有意义的。然后首先从性质 A 开始思考。可以把 query 的区间从 (1,n-1) 到 (1,1) 来缩小。设查询的右端点为r,每次 query(1,r) 时候得到的数字如果之前没有见过,那么说明这个值就是 a[r+1] 的准确值。如果见过这个数字,那么只且仅能说明 a[r+1] 大于 query(1,r) 的值。然后我们得到所有信息之后,把没填上的空位的限制范围从大到小排序,再依次把没填上的数字从大到小填进去,这样就保证正确了。

A 性质会了,可以发现其他情况只要在 query 出来 0 的时候,把整体的查询方式反转一下即可。

然后,严格 n 次,切了。

非常激动。简单码了一下。

幸好前一天学习了如何使用 .sh 批处理。方便了非常多。

11:00 过样例,简单对拍一下。嗯嗯够多了。

我在省选切题了?

完全是意料之外吧。虽然个人感觉完全是绿,但毕竟省选,管理员应该会评蓝。

事实也是评蓝了。感觉评蓝的点似乎主要在于 这是一道交互题。 吧(只是个人体感,勿喷)

“(广播)同学们,嗯,啊第三道题的样例2解释有问题啊,这里下发纸条修改一下啊”

哦哦滚木排序还排错了 /咦

11:30 去一下 wc 然后写 T3 暴力。嗯嗯先写第一个点。然后这个分讨纯史吧,花半天搞出来了。然后就感觉第二个点这个 lca 不要太小清新啊,然后速速码出来没调。然后过样例扔。

12:30 开始摆烂啊。

“(广播)嗯,啊第三道题的样例2解释还是有问题啊……”

有点难绷啊。当然这个样例错误和我无关了。

\{\text{\O},\text{\O},\text{\O},\{\text{\O}\},\{\text{\O},\text{\O},\{\text{\O}\}\}\} > \{\text{\O},\text{\O},\{\text{\O}\}\}

/hec /hec /hec

“不要东张西望,看自己的题目!”

有一个较年长的女监考一直一边转一边说。有点喜感。

“(广播)考试还有 10 分钟结束,请检查好自己的文件。”

“(广播)考试时间延长 15 分钟”

其实我本来想早点出去的,不过延时确实十分合理吧。(但是结束前 10min 广播就不合理了)

然后完赛了。

预计 100+0+8 = 108

实际 100+0+8 = 108

::::success[T1 Code (默写)]

#include<bits/stdc++.h>
#include "perm.h"

using namespace std;
typedef long long ll;

const int N = 3e4+10;

int C,T;

void init(int c, int t) {
    C = c, T = t;
    return ;
}

vector<int> ans;
int a[N], len;
bool vis[N];

struct Tp {
    int id, val;
    bool operator > (const Tp& tx) const {
        return val > tx.val;
    }
} blanks[N];
int elsenum[N], m;

vector<int> perm(int n) {
    memset(a, 0, sizeof(a));
    memset(vis, 0, sizeof(vis));
    memset(elsenum, 0, sizeof(elsenum));
    for(int i=1; i<=m; i++) blanks[i] = (Tp){0,0};
    m = 0, len = n;
    ans.clear();

    int pos0 = 0;

    for(int i=1; i<n; i++) {
        int num = query(i+1 -1, n -1);

        if(num == 0) {
            a[i] = 0;
            vis[0] = 1;
            pos0 = i;
            break ;
        }

        if(vis[num])
            blanks[++m] = (Tp){i, num};
        else
            a[i] = num, vis[num] = 1;
    }

    if(pos0 == 0) a[n] = 0;
    else {
        for(int i=n; i>pos0; i--) {
            int num = query(1 -1, i-1 -1);

            if(vis[num])
                blanks[++m] = (Tp){i, num};
            else
                a[i] = num, vis[num] = 1;
        }
    }

    int m2 = 0;
    for(int i=n-1; i>=0; i--)
        if(!vis[i]) elsenum[++m2] = i;

    sort(blanks+1, blanks+1+m, greater<Tp>() );

    for(int i=1; i<=m; i++)
        a[blanks[i].id] = elsenum[i];

    for(int i=1; i<=n; i++) ans.push_back(a[i]);

    return ans;
}

::::

::::info[本人制作的一些奇妙图片]

::::

::::error[简单比大小]

答案是把中间圆圈全划一条斜线 变成空集符号哦

::::

中饭食用了沙县小吃鸡腿饭带豆干。沙县小吃是对的。

赛后

总分 123pts,十分吉利。第一次场切蓝,非常开心。

这场省选会是我 OI 的一个转折点吧。

没有尝试面任何人。某种意义上面到了 Zzzcr 。“哦,原来你是他。” 祝他早日 w6 !

xiaoliebao 没切出D2T1,摸摸他。希望他明年能轻松进队!

希望大家明年都能更加顺利。

希望 CCF 能编排更人类化的比赛!