2016.12.03【初中部 NOIP提高C组】模拟赛

来源:互联网 发布:淘宝手机详情卖家推荐 编辑:程序博客网 时间:2024/06/05 19:59

4855. 【NOIP2016提高A组集训第6场11.3】荷花池塘 

·题目大意:从一个给定位置到达一个给定位置,只可以走马步,有些位置走不到,需要放荷叶,但岩石出不能放,让你放最少的荷叶走到给定位置并输出步数

·题意显然

·bfs

·记录到一个位置需放的最少荷叶,记忆化


4841. 【NOIP2016提高A组集训第4场11.1】平衡的子集 

·题目大意:给你n个数,让你在其中任选一堆数并使得这堆数一定能被分成完全相等的两组

·暴力的方法显然,但只能水大概50分

·更加优美的暴力也不过80分

·可以想折半操作

·先把这n个数分成|n/2|和n-|n/2|两堆,然后对于第一堆处理出它所能构造的所有状态,也就是到底怎么放这一堆的数,如果放到左边那么就是加上它,放到右边就是减去它,哪边都不放就是0,对于第二堆亦然

·处理出好怎么放后,我们对于放在左边的值于右边的值相互匹配,注意优化和判重就行了(优化:排序后建立头尾指针,表示相等的一段

·判重可以用or位运算一下,或者哈希


4886. 【NOIP2016提高A组集训第13场11.11】字符串 

·题目大意:让你求一个长度为n的串,不包含给定的危险串的个数

·很明显可以暴力,水个40分

·想想dp

·可设fi,j表示当前构造一个长度为i的,后面j位为所给定危险串的前j位的方案数

·很明显可以枚举第i+1位的长度,并跟新fi+1,_的值

·再设一状态Ai,ch表示当前在危险串里的第i位改为ch所能在危险串里匹配的最右位置

·很明显fi+1,a[i,ch]+=fi,j

·那怎么求Ai,ch呢?

·可以用kmp

{

这里简单的讲讲怎么kmp

其实就是优化了暴力

求出kmp的next数组后(怎么求自己百度一下),在原串中,假设第i位放ch这个字符,而如果与原串不符的话,则直接把i赋值为next[i],可以提高效率,至于为什么,自己想想吧,当然,也可以不用。

纯粹的暴力的话那更不用说了,直接O(26n²)的暴力即可

}


0 0
原创粉丝点击