专栏文章

CSP2025邮寄

生活·游记参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@mhzfauvf
此快照首次捕获于
2025/11/15 06:22
4 个月前
此快照最后确认于
2025/12/01 23:42
3 个月前
查看原文
注:本篇文章中 day 0 为考试日。

day -inf ~ -1

一直在打摆,且在水橙到黄的题目。没什么好说的。

day 0

J

看到了题目名字,发现存在 xor,感觉是一个位运算离谱题目,不可做。还有 polygon,也感觉不可做。
开场先看了一眼 T1,直接把字符串内的数字提取出来从大到小排个序输出就做完了,直接秒掉。
T2 就是一眼模拟。把成绩按照结构体存储,按成绩从大到小排序然后模拟排位置就行了,因为 n10,m10n\le 10,m\le 10,随便跑。
时间仅仅过去 40min40min,我还有足够的时间慢慢想 T3 和 T4。(话说 yimao20131h1h AK,齐芒40min40min AK,我是不是太菜了)
T3 一开始我的想法是求一遍前缀异或和,然后把能构成 kk 的建边,跑拓扑排序。然后,写完之后我发现一个重要问题:有环!(而且时间复杂度也是 O(n2)O(n^2) 的)于是打算换一种做法。联想到 SCP S T1,是前缀和,差不多也是这种类型的题目。但是想了半天没想出来在那道题目上改什么东西。然后不知道怎么搞的,想到了 dpdp。令 dpidp_i 表示前 ii 个数构成的最大答案。一开始 dpi=dpi1dp_i=dp_{i-1},如果 ai=ka_i=k,那么 dpi+1dp_i+1。然后枚举前面的所有点,如果异或前缀和求这段异或之后得到是 kk,那么 dpi=max(dpi,dpj+1)dp_i=\max(dp_i,dp_j+1)。这样就是 O(n2)O(n^2) 的了,跑了大样例,是对的。考虑优化。显然,dpdp 存在单调性,但是直觉告诉我并不需要二分,因为值域较小,直接拿个桶记着最后面的 jj 然后直接求 max\max 就可以了。大样例过了,时间复杂度 O(n)O(n),应该能过。
赛后问了一车人 T3 全写的带 log\log,出考场感觉会挂,实际没有挂。
T4 我想了半天没有想出来,于是打个暴力加上特殊性质走人。后面的时间就没事干了。
预期:100+100+100+64=364100+100+100+64=364
实际:100+100+100+40=340100+100+100+40=340
T4 特殊性质挂了,具体原因未知。

S

决心:切掉第一题。
实际:没切掉一道题,而且挂一堆题 QwQ。
T1 上场打了个 O(n3)O(n^3)dpdp,然后又瞎写了点特殊性质,然后思考无果后先看下一题。
T2 的 k=0k=0 我看了一眼是 MST 板子,然后敲了一个 MST 板子然后乱搞的一个做法就走人了。
T3 是我最不熟悉的字符串,写了个卡评测代码:
CPP
#include <iostream>
#include <cstdio>
#define int long long
using namespace std;

signed main()
{
	freopen("replace.in","r",stdin);
	freopen("replace.out","w",stdout);
	ios::sync_with_stdio(false);
	cin.tie(0),cout.tie(0);
	while(true){
		cout<<"I AK IOI!\n";
	} 
	return 0;
}
对应考号 HN-S01291,欢迎把我加入迷惑行为大赏。
T4 暴力走人。
剩下的时间全在玩,没有检查,导致最后的成绩及其差,以后不能不检查代码了。
我写过最短的邮寄(特指 S 组)虽然我在这之前只写过一篇邮寄
预期:60+16+0+16=9260+16+0+16=92
实际:55+0+0+8=6355+0+0+8=63
出分发现很多人都 J 组 AK 了,S 组 T1 过了。我能不能考虑 AFO 呢?
感觉是没检查导致的,但是 T2 MST 板子为什么 00 分就很奇怪了。
认真反省为什么 S 组挂分这么大!

评论

0 条评论,欢迎与作者交流。

正在加载评论...