考试总结 模拟76

之前连续爆炸,没想太多

前20分钟读题:T1看上去没思路,暴力dp很好打,T2 一点思路都没有,只会20分的n==3的指数枚举,T3看着前序中序遍历,更没有思路了

T1先是想不断交换来满足题意,然后打表,发现有个假的规律,继续深究才看出来,总共写了2个小时,太慢了,主要是边想正解边想部分分,而zzyy大佬只用了30分钟

还有1h20min,T2,T3交替思考什么都没有思考出来,

T2打开了大样例,没有排序输出发现性质,注意去从下发文件入手,如果不是随机数据,那很可能就有规律

T3 catalan的20分,,,考的第三次,第三次没看出来。然后跟catalan相关的也只有一个出栈入栈顺序 还没考过?

T1「性质题」

打表发现(字典序最小)构造方式:最终有cnt个倒序的区间,las个数升序放队首,最后满足las+倒序长度<b的区间(0/1个)+cnt个倒序小区间构成

如:n=10,a=5,b=3:1 2 4 3   7 6 5   10 9 8 

T2「性质题」

根据大样例可得:

先将a从小到大排序,那么若当前的a_i / 2>sum_{i-1},那么[sum_{i-1},a_i]的区间无法被覆盖

证明:

对于一个sum,会使[sum/2.sum]的数都成为美妙的数

考虑从小到大加入每个物品:

那么上一个区间[sum/2,sum],

当前a_i=sum*2,那么会扩展到[sum*3/2,3sum],而只选a_i会覆盖[sum,2*sum]

也就是保证了没有空隙,

当a_i更大时,显然只会产生空隙即[sum_i+1,a_i/2],不管是选前i-1共sum个还是a_i都不行

T3「DP」

定义f[i][j]为以i为根的子树大小为j的方案数

可以发现限制只有两种情况,

对于前序a<b的,

若要求中序a在b之后,那么b只能在a的左子树,由于编号连续,那么左子树大小必然>=所有满足改条件max{b-a}

若a在b前,那么b不能在a左子树,可以在右子树,也可是在lca的另一侧,那么左子树大小必然<min{b-a}

预处理出来所有的限制

然后O(n^3)依次枚举节点编号i,子树大小j,和左子树大小k

$$f[i][j]=\sum f[i+1][k]* f[i+k+1][j-k-1]$$

注意f[i][1]不能初始化1,因为可能不存在子树大小为1的情况

猜你喜欢

转载自www.cnblogs.com/casun547/p/11691213.html
今日推荐