bzoj1925地精部落总结

几个要点:1.计数问题,使用递推(dp) 2.状态设计区间形式:f[i][j]表示i个,第一个在1——j范围内方案数,第一个下降,或是直接第一个是j的方案数

3.等价反转:下降和上升时对称等价,可相互转换的(极为重要的转换思想,一一映射,将不可计数的问题模型转换为可计数问题),设g[i][j]为第一个上升的,

则将序列中每一个数x变为n-x+1,一个初下降序列就变为上升了,且一一对应 4.dp变形加速转移:和前缀和类似,但经变形比较复杂主要是根据方程特征进行做查,代换等

 6.一个问题有多个dp方程,而一个dp方程变形之后形式不同,理解也可以不同,理解越深刻越好

要点完了,让我们看看本题的几个理解

1.理解一:枚举1的位置,然后分成左右两个部分,将答案乘起来(这种思路很简单直观),我遇到唯一的问题是p可能不是质数(事实上10组全不是),那么就是新问题

如何计算模非质数的大组合数?见http://blog.csdn.net/acdreamers/article/details/8037918,把模数p暴力分解,打质数表,对于每个质数,计算在分子分母中的出现个数,分子减去分母再快速幂,不过只适合p在10^5级别的,本题绝对就是在卡我,折磨做是过不了滴,但还是该先练练组合数,见上博客

2。

你可能感兴趣的:(bzoj1925地精部落总结)