2018.7.10 模拟赛总结

T1:

数学题。感觉不应该不会。

两种思路:

num[i],珠子个数。sum[i]个数前缀和。

yjc:正着考虑,先放第一种珠子,就1种方案。(码一排)

放第二种,必须先要拿出来一个放在最后。

还有num[i]-1个珠子。用这num[i]-1个珠子分开前面的sum[i-1]个珠子。

相当于插隔板,也就是小球放进箱子里。

有num[i]-1个板,就是num[i]个箱子。放sum[i-1]个小球。每个箱子可以空。求方法数。

每个箱子先垫一个。转化成插板。

就是有sum[i-1]+num[i]=sum[i]个小球。插num[i]-1个板,方案数。

有sum[i]-1个缝隙可以插板,所以方案数是:C(num[i]-1,sum[i]-1)

放完的珠子,不管怎么放,对于后面的珠子来说都是一样的。根据乘法原理乘起来即可。

zyz:倒着考虑。放最后一种珠子。最后一颗必须放在最后一位。

就还有sum[i]-1位置,放num[i]-1个珠子。所以C(num[i]-1,sum[i]-1)

倒数第二种珠子最后一个必须放在最后一个空位上。同理。乘法原理即可。

T2:

N可能很大。

经典矩阵乘法优化dp问题。

转移是固定的。推出转移矩阵。快速幂即可。

其实16x16矩阵就可以。维护轮廓线。

0,0,0,0表示初始情况。0,0,0,1表示最下面凸出一块,上面三个空出来。其他同理。

转移例如,0,0,0,1可以通过放三个横向的骨牌,转移到1,1,1,0

初始只有0,0,0,0有值,最后只统计1,1,1,1就可以了。

T3:

猜你喜欢

转载自www.cnblogs.com/Miracevin/p/9290577.html