ICPC 区域赛真题详解
文章平均质量分 80
以实战为线索,深入探讨ICPC(国际大学生程序设计竞赛)区域赛的解题思路和技巧。内容涵盖数据结构、算法、数学、动态规划等多个核心模块,旨在帮助参赛者系统掌握竞赛知识,提升编程思维能力和临场解题效率,最终在赛场上取得佳绩。
西望云天
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
The 2023 ICPC Asia Macau Regional Contest (2023澳门区域赛ADIJ)
我们知道每个点的度数不超过3的话,一个连通图的最大的度数就是3n / 2 ,同时我们还知道一个符合题目要求的连通图的至少包含的点是2*(n - 1),因为题目要求的是对于一个连通图,去掉一种颜色的边,剩下的边构成的图仍然连通,这就告诉我们,每种颜色在一个合法的图中至少是一棵树(这样需要的边是最少的n - 1),所以我们得到了一个先决条件: 3n / 2 >= 2 * (n - 1) ,解出这个式子得到 n <= 4,这就代表我们只需要去找小于等于4的连通块就可以了。原创 2025-10-08 15:19:59 · 548 阅读 · 0 评论 -
The 2024 ICPC Asia Nanjing Regional Contest(2024南京区域赛EJKBG)
2024南京icpc区域赛感题目出的还是不错的,补到了前5题,提供参考。原创 2025-10-02 17:52:11 · 1305 阅读 · 0 评论 -
The 2024 ICPC Asia Hangzhou Regional Contest (2024杭州区域赛AKHEM)
2024icpc杭州区域赛题解,质量不错的一场,补到五题,仅供参考~原创 2025-10-04 13:03:31 · 1286 阅读 · 0 评论 -
The 2023 ICPC Asia Shenyang Regional Contest(2023沈阳区域赛CEJK)
因此我们可以直接知道数组的和是sum,然后利用权值线段树可以快速求出数组中最少需要多少个数的和>=sum,算出来的结果是c (这个c一定是某几个最大的正数的和, 剩下的整数就是会被抵消掉的正数和,|负数和| >= 没有选的正数), 正数的个数 - c + 1就是可以被抵消的正数和,也就是最后的结果。分析:读题感觉和叶子节点有关,也就是非叶子节点的个数,非叶子节点的个数就等于操作的总次数,所以判断奇偶直接输出即可。分析:bfs求最短路并且要记录状态,不能贪心,因为没有办法模拟可能右边往左边运羊的情况。原创 2025-09-30 00:29:54 · 547 阅读 · 0 评论 -
The 3rd Universal Cup. Stage 29: Metropolis(2024上海区域赛ICBGD)
分析:根据数据范围注意到是一个二分的题目,但是要贪心进行选蓝的坐标,我们可以找到满足m的需要的x坐标,对于正斜率的和负斜率的分别存起来,排序之后再贪心的选择,负斜率的x坐标从小到大排序,可以实现先满足苛刻的负斜率,把蓝的坐标作用最大化,正斜率的x坐标从大到小排序,可以实现先满足更苛刻的正斜率(因为rx是从右边开始移动的),最后我们判断满足的数量 return num >= (n + 1) / 2;分析:手速可以铜牌的题,本身不难,但是要注意很多细节,以及必须按照dfs的顺序进行,不能手动模拟。原创 2025-09-28 00:53:09 · 426 阅读 · 0 评论 -
The 3rd Universal Cup. Stage 19: Shenyang(2024沈阳区域赛JBDE)
题目要求在一个 2×2 的网格中设计一套固定的操作序列,使得无论实际初始网格的状态如何(题目给定若干个可能的初始状态),只要按照这个序列操作,总会在某个步骤使网格全亮(即所有单元为 1,从而触发提示音)。网格中每个格子有两种状态(0 或 1),因此 2×2 网格共有 2⁴=16 种可能的状态。分析:比较难搞的构造,但是多试一试会发现行和列都是等差数列可以解决问题,且需要满足gcd(n , m) == 1, 还需要单独处理一下特殊情况才能A。稳铜的题,非常的不错值得练,难度不大。的状态,而与轮到谁操作无关。原创 2025-09-26 12:30:35 · 724 阅读 · 0 评论 -
The 3rd Universal Cup. Stage 20: Kunming (2024昆明区域赛MJHLGC)
分析:通过观察每次操作对双方造成的影响,我们会发现我们总能找到一种方案<26使a变成0,如果存在两个数都是偶数的情况,则一定可以消掉最后一位的两个0(二进制),如果存在一个数是奇数,则gcd一定是奇数,也可以消掉双方最后的一个1,所以我们发现,每两次操作一定可以让两个数的位数都-1,当a的位数为0,再进行一次操作就可以两个数都置0了,所以2^26的时间大小是6.4*10^7,这个时间复杂度是可以接受的,我们只需要去暴力枚举每次的操作是什么,找到最后的结果或>26退出即可,最后搜到的最小值就是我们要的答案。原创 2025-09-19 11:52:17 · 1231 阅读 · 0 评论
分享