T1
没啥好说的,一个一个看这个字符串是不是 S 的子序列就好了。
同时发明了“下标数组”,用一个数组记录下标。
核心代码:
for(char i:s)for(int j=0;j<n;j++)if(p[j]<c[j].size()&&c[j][p[j]]==i)p[j]++;//p为下标数组
for(int i=0;i<n;i++)if(p[i]==c[i].size())ans++;
一遍过
T2
自己推出来要用dp或数学,但是转移方程一直想不出来,数学也不知道要怎么做。然后就交了一发暴力上去了。
后来老师提示说这一题用数学,答案=总方案数-不合法方案数。会求总方案数,但不会求不合法方案数。最终TLE54分。
赛后照着老师的代码订正了一下,AC
T3
考试时认为是最简单的一题。用map
统计了一下元素出现的次数,当某一个元素出现的次数为奇数时,直接输出What a pity!
,否则输出Good job!!
。
以为自己肯定AC,赛后看了一下,WA62分???
又仔细读了一下题目,才发现歪解了题意。照着题解打了一遍搜索,却只有96分。后来还是加了两个特判才AC的。
T4
做完前三题的时候还剩1个小时,但是想了好久都没想出来思路。一直卡了半个小时,就放弃去看第二题可不可以优化了。
最后没想到直接输样例能拿3分,输出1能拿6分。要是输样例+输出1,就能拿9分了QAQ
赛后照着老师的代码打了一遍,发现比第三题还简单。只需要亿点点的数学就能AC。