250pt
给一个长度不超过50的01串S,问最少可以分割成多少个由5的幂组成的二进制数。
算法分析:
高精预处理出5的幂的二进制数就是个沙茶动态规划了...
500pt
有一个n*m的01矩阵,支持两种操作,操作1是选择1行将其所有的0变成1,1变成0。操作2是选择1列。
现在整个矩阵都是0,问恰好进行R次操作1和C次操作2以后,恰好有S个1的不同操作有多少种。
不同操作与顺序无关。至于某行/列的操作次数有关。
算法分析:
我们先要计算出“有效操作”有多少。因为对一行操作两次和没操作没有区别...
设有效操作1的次数是r,有效操作2的次数是c,那么一定有r*m+c*n-2*r*c == s
r和c通过枚举求得,对哪些行/列进行有效操作可以通过组合数来求...
无效操作相当于将b个无差别的球放到a个有差别的格子里,有
f(a,b) = f(a-1,0) + ... + f(a-1,b)
预处理出来就可以了...
明天放代码,pratice room 开不了题了...
posted on 2012-10-02 23:42
西月弦 阅读(251)
评论(0) 编辑 收藏 引用 所属分类:
解题报告