2020 ccpc 河北省赛 赛后总结

本文回顾了作者大学期间首次参加的线上编程比赛经历,总结了比赛中遇到的问题及解决方案,特别是针对一道涉及区间拆分的题目使用类似最长上升子序列的方法解决的过程。

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

2020.9.27 河北省赛

这应该是我大学以来的第一场正式比赛,由于疫情原因,改成了线上比赛,少了一半的乐趣。

一些总结吧,这场比赛暴露出来的问题其实蛮多的。我们先是写了几个签到题,然后开题顺序出现了一点问题,当时02那道题有点像搜索里面抛物线那道题,点数又是15以内,我提出能不能用dfs写,后来学长觉得这题有难度往后面找题目,后来一直卡在划分那道题目上面。

一开始那道题目我读错题目了,以为是统计有多少符合条件的区间,用前缀和进行枚举,O(n * n) 的思路,后来发现是进行区间拆分。然后就开始各种算法猜测,贪心,区间合并。后来学长提出能不能用区间dp,我尝试写了一下发现不太好写,于是又带回到贪心的思路上。很长时间之后才想到有点类似于最长上升子序列那个做法,写了一下代码,因为没有注意边界问题wa了一发,万幸最后还是过了。作为队里面唯一一个写DP的,一开始没看出来思路,确实是我的问题。

02真的没什么好解释的了,一眼就能看出思路的问题,花了半个多小时才写出来,不停的调试代码,各种边界问题没有注意到。导致我们排名是所有过了六道题目的队伍里面最低的几个。我的责任蛮大的。

自我总结一下吧,这场比赛我的锅蛮大的,不会造数据,debug能力太差了,不注意边界问题,包括我一直觉得还可以的DP也没有写好,导致最后排名蛮靠后的。

目前尚未找到关于2024年河北省CCPC的具体官方信息。然而,可以基于以往的比情况推测一些可能的内容。 ### 参准备与注意事项 通常情况下,CCPC(中国大学生程序设计竞)会在每年的秋季举行区域。参者需注意以下几点: 1. **团队协作** 每支队伍由三名队员组成,分工合作至关重要。例如,在之前的比中,有队伍因签到题失误而导致时间浪费和罚时增加[^1]。因此,合理分配题目并快速定位错误是成功的关键。 2. **算法模板储备** 动态规划(DP)、图论、字符串处理等常见算法应熟练掌握。比如动态规划的一个经典实现如下所示: ```cpp #include <bits/stdc++.h> using namespace std; int k, n, m, dp[1005][1005]; int a[1005], b[1005]; int pa[1005] = {0}, pb[1005] = {0}; queue<int> q[1005]; int main() { int ak; cin >> ak; while (ak--) { for (int i = 1; i <= n; i++) while (!q[i].empty()) q[i].pop(); scanf("%d%d%d", &k, &n, &m); memset(dp, 0, sizeof(dp)); memset(pa, 0, sizeof(pa)); memset(pb, 0, sizeof(pb)); for (int i = 1; i <= n; i++) cin >> a[i]; for (int i = 1; i <= m; i++) cin >> b[i]; for (int i = 1; i <= n; i++) { q[a[i]].push(i); if (q[a[i]].size() == k) { pa[i] = q[a[i]].front(); q[a[i]].pop(); } } for (int i = 1; i <= n; i++) while (!q[i].empty()) q[i].pop(); for (int i = 1; i <= m; i++) { q[b[i]].push(i); if (q[b[i]].size() == k) { pb[i] = q[b[i]].front(); q[b[i]].pop(); } } for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]); if (a[i] == b[j] && pa[i] != 0 && pb[j] != 0) dp[i][j] = dp[pa[i] - 1][pb[j] - 1] + k; } } printf("%d\n", dp[n][m]); } return 0; } ``` 3. **模拟训练** 定期参加ACM/ICPC风格的在线比或学校内部模拟有助于提升实战能力。通过解决类似矩形面积计算等问题来增强几何算法的理解[^3]。 ### 事安排预测 虽然具体日期未公布,但根据往年惯例,建议关注以下几个方面: - 报名截止时间和方式; - 初步计划中的比地点及日程表; - 是否存在线上预选环节。 #### 提醒事项 务必留意官网公告以及教练通知,及时调整复习策略以应对可能出现的新变化。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值