膜你赛5总结贴

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。