APIO 2022 游记

本文记录了作者参加APIO 2022的比赛经历,详细介绍了T1-T3三道题目的解题思路。T1中,作者采用特殊存储策略处理棋盘格问题;T2通过DFS尝试解决有向图动态成环问题;T3则通过数学公式和位操作解决构造上升子序列的难题,获得了大部分分数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Day -6

我以为是今天比赛,然而我发现没收到比赛邮件,然后我看了看日期,才发现原来是下周。

Day 0

在上学,根本没法上 APIO 的课。

Day 1

比赛终于开始了,然而今天要做核酸,不过还好,核酸在下午做,比赛在上午。很快就到了 9:00,比赛开始了。

T1

开幕棋盘格连通块问题,而且还是限制数据存储方式的。

题目大意:(2n+1)×(2n+1)(2n+1)\times (2n+1)(2n+1)×(2n+1) 的棋盘格中每一格只能存 100 个字节,一共遍历 nnn 轮,第 iii 轮遍历左上角为 ([1,2n−2k−1],[1,2n−2k−1])([1,2n-2k-1],[1,2n-2k-1])([1,2n2k1],[1,2n2k1]) 的大小为 3×33\times 33×3 的矩阵,每次只能看到矩阵内存储的信息,然后修改最左上角一格。

我在每次遍历时把整个棋盘格中下一次遍历不到的内容全都存到了角落里,直到最后一次整个棋盘格都在第一格,然后再运算得出答案,这题我得了 14 分

T2

这题的剧情好像是第一题的续集。

题目大意: 已知有 nnn 个点 mmm 条边的有向图,在动态加点的过程中求什么时候第 1 个点到第 kkk 个点中有任意一点可以成环。

我只写了 DFS 暴力,最后几分钟试图写 BFS 优化一些,结果没调试完,得了 12 分

T3

这场比赛我大部分得分都在这题,这确实是很精彩的一题。

题目大意: 构造一个任意长度的排列,使得该排列有 kkk 个上升子序列。

对于前 10%10\%10% 的数据,直接从 k−2k-2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值