加载中...

2026省集游记

24 年在祈祷这辈子能去noip。25 年打了 50pts 的一坨。26年来了省集。

题单 oj

day 0

下午去机房的时候顺便去报道,领到了牌子和餐票。

晚上去打模拟赛,看了看一题不会。这啥啊?

颓了一晚上,睡觉。

day 1

爽爽七点起床。

模拟赛,发现有一个提交答案和一个交互,感觉会比较完蛋。

图灵机是什么啊?停机是什么啊?IOI 赛制是不是可以套数据啊()

确实花了10min套出来了。我居然拿到了100pts()

接下来几个题一直不会吧,交互题没看懂,去想了想 T3。打了个暴力。

void solve(){
	ll minx = 4e18;
	int op = read();
	ans %= n;
	if(op == 1){
		int r = read();
		r ^= ans;
		for(int i = 1; i <= r; i++)
			b[i] ^= 1;
//		ans = 0;
	}
	else{
		int l = read(), r = read();
		l ^= ans, r ^= ans;
//		for(int i = 1; i <= n; i++)
//			cout << b[i] << " ";
		for(int i = l; i <= r; i++){
			for(int j = i + 1; j <= r; j++){
				if(b[i] == b[j]){
					minx = min(minx, abs(a[i] - a[j]));
				}
			}
		}
		if(minx == 4e18) minx = 0;
		cout << minx << endl;
		ans = minx;
	}
}

真的很暴力吧。

中午去吃了食堂的饭,怎么这么难吃啊?上楼干完苦力去围观了 lyt 和 hsy 打篮球。我的体育技能为负数。然后颓了一中午吧。

下午去听课。我相信我还记得啥。

  1. 餐点好吃。

  2. 支配集。好文 我之前写过支配树状物来着,但是很明显我不会,而且这两个有区别。
    具体来说,大概适用在区间内求点对计算贡献的时候可以用它。主要思想是只保留有效点对。
    应该是只听懂了这个。
    CF765F Souvenirs
    晚自习看了这题,大概看懂了但不会写。
    定义 \(i, j, k\),如果 \(a_i < a_j < a_k\),则 \((i, k)\) 的意义被 \((i, j)\) 掩盖。
    考虑 \(a_i, a_k < a_j\)
    \(a_i > a_k\)。则 \(|a_j - a_k| > |a_i - a_k|\),易得 \(|ai-ak|<1/2|ai-aj|\)
    \(ai<ak\)
    \(|ai-aj|>|ai-ak|\),这里限制了一个下界,之后再出现 \(ai<ak\) 的情况可以类比①了。
    每个 \((a[i],a[j])\) 的 pair 即对所有 \(l\)\([1,i]\) 中,\(r\)\([j,n]\) 中的询问,其答案对 \(|a[i]-a[j]|\) 取max。
    发动一下雷霆眼力,这里看错了 \(l, r\)。注意一下。

  3. KD-T。好文。这个东西好像已经被卡爆了,先放一放。
    容斥,和线段树差不多,但是是维护矩形。后面忘了。

  4. 等价类分治。lyt经常读错。中间忘了,后面忘了。

晚上大致研究了一下支配集。

day 2

哈哈哈哈昨天讲的全忘了。

模拟赛省流:一题不会。 这都啥啊?
梦话:(l - r) / 2,排列数写成组合数。
我的排列数挂哪了?
我代码的 bug 比我的头发多。
5pts,没爆零(((

中午以一些人的名义去给另一些人写情书()愚人节还是太好玩了。

原来神秘嘉宾是王茂骅啊!
省队队长的脑子和我的脑子就是不一样吧,我听不懂。

大致梳理一下。

T1

可以将 key 看做 (,door 看做 )。感觉这样会好看很多。为什么我赛时没想到啊?

B 性质就很招笑了,但为什么我没打出来啊?

会得出一个形如 ()()()()...... 的东西,然后写排列数。

对于 A 性质,我们可以从原点开始画折线,左括号记为上升,有括号记为下降,可得在整个曲线当中最低点永远大于等于 \(0\)。相当于每个右括号都会被匹配。

此时结合暴力就可以拿到 \(60 - 80 pts\),但为什么我没拿到啊?

我的 OI 水平是倒数第一。

以下我都不会写了,尽力看懂一点。

接下来注意力一下随机游走。但我看不懂啊?总而言之应该是按照一个概率乱走。由此得这最高点和最低点不会差太多,是 \(O(\sqrt n)\) 的。

然后我就不太懂了,先写这里看看能不能懂吧。

将询问离线并挂在最低点处,处理时枚举最低点,只需预处理往两边最远拓展的长度即可。相等前缀和位置可以使用微调笛卡尔树实现。期望时间复杂度 \(O(n \sqrt n + q)\),期望得分 \(90 - 95pts\)

然后是大力卡常优化,乘法可以转换为预处理离散对数,查询是用加法替代取模。加上快读,求区间最小值可以笛卡尔树 + 树剖。

我现在甚至懒得打字了。

综上,能写 \(60-80pts\),剩下的不会写,只能尽力看懂吧。改天学学笛卡尔树

T2

想到了一点但不多。

长得像个图,考虑连边。只关心 \(a_{i, j}\) 是否等于 \(0\),所以暴力连边可以打 10 pts。

为什么我打了没分啊?

我们猜测当 \(r\) 足够大时存在循环节。这我也猜出来了但不会写啊?

注意到 𝑥 如果能走回自己,则一定存在一个 ≤ 𝑛 的循环节。

笑死我了我们开始霍霍我们学校课件网址了。

day 3

白天模拟赛怎么还是啥也不会啊。打了 10pts 的特殊性质。怎么有一车人过了 T1T2 啊?怎么还有人过了 T3 啊?

T1

是一个线性基状物。线性基是啥啊不会,晚上搞搞。

补一下。

线性基模版题,线性基是一种擅长处理异或问题的数据结构。
前置知识:线性空间
坏了我咋这个也不会。

  1. 线性基能干啥:

    • 快速查询一个数是否可以被一堆数异或出来。
    • 快速查询一堆数可以异或出来的最大/最小值。
    • 快速查询一堆数可以异或出来的第k大值。
  2. 线性基有啥性质:

    • 原数列里的任何一个数都可以通过线性基里的数异或表示出来。
    • 线性基里任意一个子集的异或和都不为 \(0\)
    • 一个数列可能有多个线性基,但是线性基里数的数量一定唯一,而且是满足性质一的基础上最少的
  3. 原理 & 实现

    ::::info[约定]{open}
    \(p_i\) 表示原序列的线性基数组。
    ::::

    \(Step\ 1\) 令插入的数为 \(x\),最高位是 \(i\)。还是因为不会排版所以不放代码了.

    • 若线性基的第 \(i\) 位为 \(0\),则直接在该位插入 \(x\),退出;
    • 若线性基的第 \(i\) 位已经有值 \(a_i\),则 \(x = x \oplus a_i\)

    原理:如果 \(x = 0\) 说明 \(x\) 能被数组内已有内容覆盖,属于“无用信息”。判断同理

    \(Step\ 2\) 查询最小/大值。

    这个应该比较简单了吧,考虑到插入的步骤,我们只需要输出线性基的最小值就好了。

    \(Step\ 3\) 查询第 \(k\) 小值。

    进一步简化。一个线性基肯定能被表示为若干个形如 \(2 ^ i\) 的数(这里指在异或逻辑运算下它们的作用等价于 \(2 ^ i\)

    还是懒得写()

    过了过了过了,回家研究 T1。

T2

如果不在主副对角线,那么四条边是独立的。最多代价 \(c \times m\)。折线高度?观察性质?

T3

按照 \(b_i\) 从大到小排序。dp 状物。

听懂了 0 个题。怎么花了不到 1h 就讲完了啊?金牌是这样的吗?

回去研究一下 T1T2,T3打摆了。

CF1988F Heartbeat 能从中间剪开,然后是啥,不知道。

AT_arc176_f 把能变成任意颜色的看作空位。题解

qoj 9463 P12472

day 4

我怎么状态这么差啊?开赛前 1h 啥也想不到。
最终获得了 0pts 的高分!

下午去拍了合影。

T1

数据结构。

取对数。?原根?

补一下。知识点:离散对数 阶和原根
原根将是我的梦魇(指五级!

不会证明。作为 OIer 我们不用会证明。

对于阶:

性质 \(1\):设 \(m\in\mathbf{N}^{*}\)\(a,b\in\mathbf{Z}\)\(\gcd(a,m)=\gcd(b,m)=1\),则

\[\delta_m(ab)=\delta_m(a)\delta_m(b) \]

的充分必要条件是 \(\gcd(\delta_m(a),\delta_m(b))=1\)

性质 \(2\):设 \(k \in \mathbf{N}\)\(m\in \mathbf{N}^{*}\)\(a\in\mathbf{Z}\)\(\gcd(a,m)=1\),则

\[\delta_m(a^k)=\dfrac{\delta_m(a)}{\gcd(\delta_m(a),k)} \]

对于原根:

定义

定理 \(1\):对于奇素数 \(p\)\(p\) 有原根。

定理 \(2\):对于奇素数 \(p\)\(\alpha \in \mathbf{N}^{*}\)\(p^\alpha\) 有原根。

定理 \(3\):对于奇素数 \(p\)\(\alpha\in\mathbf{N}^{*}\)\(2p^{\alpha}\) 的原根存在。

定理 \(4\):对于 \(m\notin\{1,2,4\}\),且不存在奇素数 \(p\)\(\alpha \in \mathbf{N}^{*}\) 使得 \(m\in\{p^{\alpha},2p^{\alpha}\}\),则对任意 \(a\in\mathbf{Z}\)\(\gcd(a,m)=1\),都有 \(\delta_m(a)<\varphi(m)\),即模 \(m\) 的原根不存在

以上摘自题解和 OI wiki。有错去怪题解。 但我还是不太会啊?

对于模板题,我们可以预处理出 \(\varphi(m)\) 的所有质因数,然后快速幂。

回家写代码,再跟 AI 学一学吧。

我真想搞 OI。

T2

容斥,把大于变成小于。反演。

T3

字典序单调不降。从 0 和 1 之间断开,然后分治。

等价类,记长度、个数、末尾,再几个0/1表示前面是否出现。dp。

杂题

AT_arc184_b 1、质数选。然后根据 \(x,2x,3x\) 进行一个分组。每组有 \(\log\) 个数。
\(x \times 2^i \times 3^j\)

P3577 最小支配集。
AT_arc175_e
LCT,退流是啥?拟阵 虚树。
qoj.ac 9491

懒得记了,看课件吧。这些我基本都没咋听懂(

day 5

怎么过去一大半了啊!

别样的原题大赛。

开 T1 发现自己不会打全排列()后来胡出来了但怎么 RE 了啊?花了1.5h不回调跑路。

T2 开题没看懂,读了几遍发现前两个特殊性质非常可做。写了1.5h 发现不会写()然后又把 subtask3 想出来了,但我还是不会打啊!

我好难受啊我的码力你怎么能这样对我。

能不能赐予我想到什么思路就能写出什么代码的能力。
再赐予我看到题想出正确思路的能力我就进队了(

我觉得是不是该反思一下了?
别拿初一女生当借口了我求你了,你今年真的能翻盘吗?再菜还能连续两场爆零吗?你 T1 这么明显为什么想不到啊?T2 25pts 为什么不会打啊?

你是不是做题的时候应该认真点了?是不是需要加训加训加训了?

T1

找后缀最大值。

T2

最小生成树跑 \(q = 0\),然后对于 \(k\) 再跑。

最后为什么能倒着跑?

T3

好像整体都没听懂。把 T1T2 搞明白了学这个。

dp 选讲

AT_arc193_c 好聪明啊可以时光倒流(第一次删十字,随后指定一些方格然后继续删(有一行、一列或十字),把矩阵删空合法)。但不会转移。

怎么这么聪明啊???

容斥,咋容斥?

2023 ICPC Asia East Continent Final Contest A.DFS Order 4

打 abc打abc打abc

day 6

咋 day 6 了?

T1/P11089

字典树。?

不是很会,晚上研究一下。

T3/P12608

分治。怎么还要hash。

怎么啥也没听懂

杂题选讲

AT_arc153_f

posted @ 2026-04-01 20:17  碎碎念的女巫  阅读(4)  评论(0)    收藏  举报