牛客小白月赛3

A:
我们规定元音字母有a、e、i、o、u,并且规定半元音字母y也是元音字母。
Cwbc在学习英语,XHRlyb为了让Cwbc的记忆更加深刻,于是她让Cwbc把每个字符串的所有字母都变成一个 恰好不大于它本身的小写元音字母
可是Cwbc比较贪玩,并且他想让你帮他完成这个任务。

聪明的你在仔细阅读题目后,一定可以顺利的解决这个问题!

me:

开始还wa了一发。。。

大佬:

用常量数组代替复杂的if询问判断。

B.

XHRlyb和她的小伙伴Cwbc在玩捉迷藏游戏。
Cwbc藏在多个不区分大小写的字符串中。
好奇的XHRlyb想知道,在每个字符串中Cwbc作为子序列分别出现了多少次。
由于Cwbc可能出现的次数过多,你只需要输出每个答案对2000120420010122取模后的结果。

聪明的你在仔细阅读题目后,一定可以顺利的解决这个问题!

me:这题一开始写的遍历查询身后的子序列。不出意料的TLE。

大佬1:

前缀和思想。a,b,c,d分别记录c,w,b,c出现的次数。当出现w时,能凑成的数目应该为前面有多少c;同理,当出现b时,能凑成的数目应该为前面有少个cw的组合;求最后的次数时,能凑成的数目应该为前面有多少个cwb的组合。每次求余。

注意abcd为 LL,否则卡75;

大佬2:

dp,滚动数组

令 f[i][j],(j = 1,2,3,4) 表示前 i 个字符中,匹配了字符串”cwbc” 的前多少位,那么有转移方程:

f[i][1] = (f[i−1][1] + (s[i] ==′ c′)) % Mod

f[i][2] = (f[i−1][2] + (s[i] ==′ w′)∗f[i−1][1]) % Mod

f[i][3] = (f[i−1][3] + (s[i] ==′ b′)∗f[i−1][2]) % Mod

f[i][4] = (f[i−1][4] + (s[i] ==′ c′)∗f[i−1][3]) % Mod

内存超标。使用滚动数组优化开销:

f[1] = (f[1] + (s[i] ==′ c′)) % Mod

f[2] = (f[2] + (s[i] ==′ w′)∗f[1]) % Mod

f[3] = (f[3] + (s[i] ==′ b′)∗f[2]) % Mod

f[4] = (f[4] + (s[i] ==′ c′)∗f[3]) % Mod

(。。。好像变为一维和大佬1思路是一样的啊。。。大佬的思路总是不约而同,菜鸡的思路总是千奇百怪。。。QAQ)

C:XHRlyb在和Cwbc玩游戏。
在一个多重集合中有在[l,r]中的全部整数各一个,即l,l+1,l+2,......,r。
每次XHRlyb和Cwbc可以选择一个大于0的数字p,把p从多重集合中删去,然后向集合中加入k个,最后不能操作的人算输。

如果博弈双方都是绝顶聪明的,并且XHRlyb先手,请你来帮XHRlyb预测这一局游戏谁会获胜。
如果博弈双方谁也无法取胜,那么判定为平局。

聪明的你在仔细阅读题目后,一定可以顺利的解决这个问题!

me:博弈论?#@$@!%!$#%!%!$#@!$!@%$^.......

大佬:

维护一个多重集合,每次取出一个大于 0 的数字 p,把它删掉,然后向集合中加入 k 个 ⌊p k⌋,不能 操作的人算输。

...是向下取整的意思。。。弄懂这个符号才看明白题。。。

D:XHRlyb发明了一类数,叫做妹纸数。

假设xi∈[p,q],yi∈[u,v],且xi与yi均为整数,我们称这区间 [p,q]相对于区间 [u,v]的妹纸数为
XHRlyb想让Cwbc帮她快速计算多组区间 (a,b]相对于区间 [l,r)的妹纸数。
Cwbc显然是愿意帮助她的,但他知道你不想解决这个问题,于是就把这个问题交给了你。

聪明的你在仔细阅读题目后,一定可以顺利的解决这个问题!

me:时间浪费的不够了没看。

大佬:

F:异或

两个区间 [a,b] 和 [c,d],从他们中各任取一个,其异或值为零的概率是多少,输出一个最简分数。

。。。异或只有异或本身才会为零。

me:








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值