码迷,mamicode.com
首页 > 其他好文 > 详细

cf搬题

时间:2017-08-03 12:31:02      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:用两个   指针   匹配   否则   mod   同方   代码   字母   交换   

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搬题

标签:用两个   指针   匹配   否则   mod   同方   代码   字母   交换   

原文地址:http://www.cnblogs.com/foreverpiano/p/codeforces.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!