首页 > 代码库 > cf搬题

cf搬题

rand 题基本上是CD吧,AB不想做,E太难了233~

+ 看别人代码 - 自己写的 * 看题解的

315D +

给定两个string a b,以及他们出现的次数c,d 求找到一个最大p,使得整个b串为a的子串。

我们对于b的每一位都找到a串的结束的位置nxt数组,然后如果匹配了,把b串的cnt++,最后统计答案,就是根据nxt的跳跃统计cnt就可以了,

254C +

给定两个串,求改变a串最少的顺序,使得a中的每一个字符出现的次数等同于b出现的次数,并输出字典序最小的方案。

- naive的做法:我们用两个指针分别从后向前扫一遍,更新比他大或者比他小的

错误原因:由于是字典序最小,第一个字母小比什么都好。

+ 机智的做法,从前往后扫,如果比他小,那么就填上,否则如果后面没有这个字符了,那么就必须填上

152C -

(怎么rand都是string啊、、)

给定n个串,你可以交换每一个串对应的位置,求出现不同方案的数量mod1e9+7

对于每一位,统计一下不同的字符出现了多少次,乘一下就好了。

 

cf搬题