滑蒻稽的博客

【笔记】2022 初赛

在役生涯最后一次复习初赛了,有一点别样的滋味。。。

CSP-S 2021 第一轮

T10 交换相邻元素进行排序的最小操作次数是逆序对数量,因为每次必能找到一个相邻的逆序对,并且每次交换最多使逆序对数量 -1。

T12 \(T(n)>2T(n-2), T(n)\approx 2^{n/2}=O(2^n)\)

T13 选 4 个苹果有 5 种方式,数错了。。。

9.16 模拟

阅读程序的数位 DP 实现很妙(其实是之前的写的都太拉跨了):

ll dfs(ll pos, bool limit, bool lead, ll pre1, ll pre2) {
	if (!pos) {
		return 1;
	}
	ll ans = 0;
	if (!limit && !lead && f[pos][pre1 + 1][pre2 + 1] != -1) {
		return f[pos][pre1 + 1][pre2 + 1];
	}
	ll up = limit ? a[pos] : 9;
	for (ll i = 0; i <= up; ++i) {
		if (i != pre1 && i != pre2) {
			ans += dfs(pos - 1, limit && i == up, lead && !i, (!lead || i) ? i : -1, pre1);
		}
	}
	if (!limit && !lead) {
		f[pos][pre1 + 1][pre2 + 1] = ans;
	}
	return ans;
}

!limit && !lead 成立时才进行记忆化,这样根本不影响复杂度,但是就不用记 f[limit][lead] 这两维状态了。

Day 1

看到 O2 发了一个所谓 薄纱主定理 的东西,其实只能验证选项用。初赛全是选择题还是低估您们了。。。

初赛的时间复杂度计算题应该不会出太恶心的东西,以前用画图然后等比数列求和的办法都能做出来。

posted @ 2022-09-13 22:04  huaruoji  阅读(54)  评论(0编辑  收藏  举报