摘要: 思路:polya裸题,如果是旋转,对于旋转i格的循环节长度len=lcm(i,n)/i,个数就是n/len=gcd(i,n);如果是翻转,奇数个点对称轴就是一个点一条边,那么循环节个数即n/2+1, 偶数个点有n/2条对称轴穿过两个点,循环节个数是n/2+1,n/2条对称轴穿过两条边,循环节个数就是 阅读全文
posted @ 2016-10-10 22:00 DUXT 阅读(207) 评论(0) 推荐(0)
摘要: 思路:区间dp,设状态f[l][r][bo]表示区间[l,r]的答案,bo=1表示该区间可以放M也可以不放M,bo=0表示该区间不能放M,并且对于任意一个状态f,l和l-1之间均有一个M,于是就可以进行转移了。 对于区间[l,r]中的任意位置都可能要放一个M,于是当bo=1时f[l][r][bo]= 阅读全文
posted @ 2016-10-10 20:29 DUXT 阅读(185) 评论(0) 推荐(0)
摘要: 思路:完全背包加容斥原理 首先不考虑限制,那么很容易可以预处理出f[i](f[i]+=f[i-c[i]],1<=i<=4,i-c[i]>=0)。 然后考虑如何求出限制后的答案。 首先考虑这样的一个问题:x1+x2+x3+x4+x5+...+xn=m有多少组整数解。显然插板法可以解决这个问题,但如果引 阅读全文
posted @ 2016-10-10 09:27 DUXT 阅读(256) 评论(0) 推荐(0)
摘要: 思路:区间dp,令f[l][r]表示l到r的答案,于是f[l][r]=min(f[l][mid],f[mid+1][r]),如果能折叠f[l][r]=min(f[l][r],f[l][l+len-1]+calc(r-l+1,len),calc是计算数字的长度。记忆化搜索即可。 1 #include< 阅读全文
posted @ 2016-10-10 08:12 DUXT 阅读(153) 评论(0) 推荐(0)