滑蒻稽的博客

【笔记】2022 初赛

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

CSP-S 2021 第一轮

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

T12 T(n)>2T(n2),T(n)2n/2=O(2n)

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 @   huaruoji  阅读(68)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示