2026-01-30 团队内测游记
考试基本信息
- 时长:\(3\) 小时
- 开始时间:\(2026/1/30\) \(8:00\)
- 结束时间:\(2026/1/30\) \(11:00\)
- 难度:红红橙黄
- 分数:\(340\)
- 挂分:\(60\)
赛时
本文中以 \(2026/1/30\) \(8:00\) 为第 \(0\) 分钟。
-1min
急急匆匆赶到教师,以为像昨天一样 \(8:20\) 开考,结果是 \(8:00\)。
0min
开题,昨天被倒序开题创飞了,今天正序开题。
1min
看 T1,突然瞥见数据范围:
对于 \(100\%\) 的数据,\(1 \le n \le 100, 1\le m \le 10000\)。
这不统计一个总和,算个差值判断一下就完了吗?
5min
写完代码,大样例都过了,我觉得应该不会像昨天一样大样例过水导致做法假了没发现,遂开 T2。
6min
这不 abc 原题吗,就是改了一下语言,隔壁的 dalao 说出题人因为心虚才改的语言名。
10min
忘记 s.find(ch) 在 \(s\) 中没有 \(ch\) 时,返回啥了。
11min
小熊猫c++的代码补全告诉我应该返回 string::npos。
15min
写完代码,大样例(其实没有大样例)都过了,看到隔壁的 yingMC 在手写 find,实在蚌埠住了。
16min
开T3,没什么思路,想着先写个暴力再说,\(O(n^2)\) 在 \(n=5 \times 10^5\) 时,会 T 飞,但是没啥好思路,就先写了。
25min
暴力写完了,努力想优化,发现可以维护倒下的左端点和右端点,赶紧写写写写写。
30min
优化写完了,发现样例二没过,看我调调调调调。
31min
发现左端点最后一定是 \(1\),遂改代码。
35min
改完了,样例都过了,开T4。
40min
看了 \(5\) 分钟没啥思路,也想不到用什么维护。
45min
看了一眼数据范围
有点极限啊,查询外面有一个 \(O(Q)\),所以里面只能弄 \(O(n)\),用计算器算了一下发现 \(O(nK \log n)\) 有点极限。
50min
看了一眼题目名:
背包问题
所以是不是要背包 DP?应该是个陷阱,但是肯定要用 \(O(n)\) 的 DP 做。
50min
先把输入写了再说。
55min
输入写完了,感觉用类似栈的操作维护不太行,便删了。
60min
把各种 STL 的删除都试了一遍,发现还是不行。
65min
老师把 dalao 调走了。
70min
老师也把我调走了,调到了 dalao 的旁边。
75min
拷贝完代码,接着想。
80min
是在没啥思路,开始写邮寄。
120min
严肃和 dalao 交换邮寄,等等,dalao 怎么写的游击?
125min
去想 T4 的DP。
150min
DP 写出来了,但是样例最后五个数有问题,看我调调调调调。
160min
发现样例前 \(14\) 行都对了,只有第 \(15\) 行是错的。
165min
发现操作二应该正序推,第 \(15\) 行对了!!!!!!!!!!!!!!
就是不知道过了没有。
170min
上了一趟撤说,还是那句话:
撤说好臭,
答辩豪赤。
——zhangzhixing99 的邮寄
172min
静态检查代码,发现 T3 的数组开小了。
174min
检查是否要开 long long,T4 要对 \(998244353\) 取模,我觉得应该可能会爆 int,于是:
#define int long long
176min
建立选手文件夹。
177min
趴着休息。
178min
交题。
赛后
省流:没 AK。
看分数紧张死了,结果 T4 被良心 hack 了,挂分 \(60\)。
四道题目
T1
题目描述
给定一个长度为 \(N\) 的整数序列 \(A = (A_1, A_2,\dots,A_N\)),以及一个整数 \(M\)。
请判断能否从序列 \(A\) 中删除恰好一个元素,使得剩下的 \((N−1)\) 个元素之和恰好为 \(M\)。
输入格式
第一行输入两个整数 \(N,M\)
第二行输入 \(N\) 个整数,依次为 \(A_1, A_2,\dots,A_N\)
输出格式
如果存在一种去除方式,使得剩余元素之和恰好为 \(M\),输出 Yes;否则输出 No。
输入输出样例一
输入:
4 10
3 2 3 4
输出:
Yes
输入输出样例二
输入:
5 16
3 3 4 2 5
输出:
No
输入输出样例三
输入:
6 16
0 8 0 2 6 8
输出:
Yes
数据范围
对于 \(40\%\) 的数据,\(A_i=1\)。
对于 \(100\%\) 的数据,\(2 \le N \le 100,0 \le M \le 10000,0 \le A_i \le 100\)。
T1 题解
算出总和,依次枚举每个数是否可行即可,时间复杂度 \(O(n)\),预期得分 \(100\)。
T2
题目描述
动物王国的官方语言数不胜数,其中有两门就是狐狸语和兔子语。
两种语言都只使用英文字母的小写字母的一部分来书写单词。狐狸语只使用长度为 \(N\) 的字符串 \(S\) 中包含的字母,兔子语只使用长度为 \(M\) 的字符串 \(T\) 中包含的字母。
现在给出 \(Q\) 个该国的官方语言中的单词 \(w_1,w_2,\dots,w_Q\)。对于每个单词,根据其包含的字母判断它属于以下哪种情况:
- 可以确定是狐狸语的单词(输出
Fox); - 可以确定是兔子语的单词(输出
Rabbit); - 无法确定是哪种语言(输出
Unknown);
输入格式
第一行输入两个整数 \(N\) 和 \(M\)
接下来两行输入两个字符串 \(S\) 和 \(T\)
第四行输入询问次数 \(Q\)
接下来 \(Q\) 行,每行输入一个单词 \(w_i\)
输出格式
输出包含 \(Q\) 行,对于每次询问,输出一行字符串表示该次询问的答案。
输入输出样例一
输入:
6 5
ahikst
aikot
5
asahi
okita
kiai
hash
it
输出:
Fox
Rabbit
Unknown
Fox
Unknown
输入输出样例二
输入:
7 6
ahiknst
ahikos
5
kioki
ohiki
tashi
nishi
kashi
输出:
Rabbit
Rabbit
Fox
Fox
Unknown
输入输出样例三
输入:
13 11
defghiqsvwxyz
acejmoqrtwx
15
qhsqzhd
jcareec
wwqxqew
wxqxwex
jxxrtwa
trtqjxe
sqyggse
xxqwxew
xewwxxw
wwqxwex
xqqxqwq
qxxexxe
teqeroc
eeeqqee
vxdevyy
输出:
Fox
Rabbit
Unknown
Unknown
Rabbit
Rabbit
Fox
Unknown
Unknown
Unknown
Unknown
Unknown
Rabbit
Unknown
Fox
数据范围
对于 \(40\%\) 的数据,\(N=M=1\);
对于 \(100\%\) 的数据,\(1 \le N,M \le 26,1 \le Q \le 100\),\(w_i\) 的长度在 \(1\) 到 \(100\) 之间。
T2 题解
我们知道 string 有个好函数 find(),找不到就返回 string::npos,直接对于 \(w_i\) 的每个字符分别在 \(S\) 和 \(T\) 中 find() 即可。
T3
题目描述
在数轴上有 \(N\) 个多米诺骨牌依次排成一行。第 \(i\) 个骨牌站在坐标 \(i\) 处,高度为 \(A_i\)。
当第 \(i\) 个骨牌向右倒下时,坐标在 \(i\) 到 \(i + A_i − 1\)(含两端)范围内的所有骨牌都会向右倒下。
当第一个骨牌向右倒下时,共有多少个骨牌会倒下?
输入格式
第一行输入一个正整数 \(N\)
第二行输入 \(N\) 个正整数 \(A_1,A_2,\dots,A_N\)
输出格式
输出一个数,表示第一个骨牌向右倒下时会倒下的骨牌总数。
输入输出样例一
输入:
4
3 1 4 1
输出:
4
输入输出样例二
输入:
9
1 4 1 4 2 1 3 5 6
输出
1
输入输出样例三
输入:
10
5 4 3 2 1 1 2 3 4 5
输出:
5
数据范围
对于 \(40\%\) 的数据,\(1 \le A_i \le 2\)。
对于 \(100\%\) 的数据,\(1 \le A_i \le N \le 5 \times 10^5\)。
T3 题解
第一眼我们想到 \(O(N^2)\) 暴力,在 \(1 \le N \le 5 \times 10^5\) 时肯定会 T 飞。
注意到倒下的骨牌肯定是连续的,可以记录左端点和右端点,输出 \(r-l+1\) 即可。
但是 \(l\) 一定恒为 \(1\),直接维护右端点即可,时间复杂度 \(O(N)\),预期得分 \(100\)。
T4
题目描述
有一个箱子。最初,箱子是空的。对这个箱子,总共要按输入给定的顺序进行 \(2\) 种操作共 \(Q\) 次:
- 操作 \(1\):
+ x表示向箱子中加入一个写有整数 \(x\) 的球。 - 操作 \(2\):
− x表示从箱子中取出一个写有整数 \(x\) 的球。保证在取出前,箱子中一定存在一个写有整数 \(x\) 的球。
对于每次操作后,请解决以下问题:
从箱子中取出若干个球,使得这些球上写的整数之和恰好为 \(K\),共有多少种取法?请输出对 \(998244353\) 取模的结果。
注意,箱子中的所有球都是不同的。
输入格式
输入:
15 10
+ 5
+ 2
+ 3
- 2
+ 5
+ 10
- 3
+ 1
+ 3
+ 3
- 5
+ 1
+ 7
+ 4
- 3
输出:
0
0
1
0
1
2
2
2
2
2
1
3
5
8
5
数据范围
对于前 \(40\%\) 的数据,保证没有操作 \(2\)。
对于 \(100\%\) 的数据,\(1 \le Q,K,x \le 5000\)。
T4 题解
如果你做过 这道题 那么你就会发现 T4 就是这道题的加强版,只是多了一个操作 \(2\) 而已。
由于操作 \(1\) 是正序遍历的,所以操作 \(2\) 可以倒着遍历,这还是需要一点思维的。
总结
还是挺水的,没 AK 属于发挥失常。
接下来打上标签:
- T1:
![]()
- T2:
![]()
- T3:无
- T4:
![]()
接下来打上难度:
- T1:
![]()
- T2:
![]()
- T3:
![]()
- T4:
![]()







浙公网安备 33010602011771号