发现不是很好dp,考虑从大到小枚举位转而判断能不能让这一位为0。设计dp状态:\(dp[i][j]\)表示前i个分了j组是否能满足当前条件,显然有一个\(O(n^3logA)\)的简单dp。判断是否满足条件相当于:如果目前是第k位,那么0~k-1位无需考虑,第k位是0,k+1位之后或上目前的ans一定还是ans(没有ans以外的1)。
我们发现这个复杂度是能过除了最后一个点的所有Subtask的,而最后一个点有一个特殊性质就是A=1,所以我们就不需要考虑最小分组过小的情况了,分组越少越好,所以可以将0/1的dp剪掉一维,用dp值代替原来的状态,这样就是\(O(n^2logA)\)了,可以通过。
而我们发现转移也可以用bitset来优化,如果没有发现这个特殊性质的话可以做到\(O(\frac{n^3logA}{\omega})\),APIO官方数据可以通过但是可以被全0数据卡死。
Submission:
n^2logA dp:https://uoj.ac/submission/610254
bitset优化:https://uoj.ac/submission/152981
标签:ac,Sculptures,Bali,2logA,APIO2015,ans,dp From: https://www.cnblogs.com/IceYukino/p/17188409.html