SGU 178 解题手记

SGU178 解题手记
  为了让拆的次数最少,必须让每一段尽可能的大。每拆一次,就会得到一段长度为1的,以及被拆的link左边和右边的两段。假设需要拆x次,那么就会得到x段长度为1的,其他的段就应该排成(x+1),(x+1)*2,(x+1)*4,(x+1)*8,...
  其实就是求一个不等式:
  x+(x+1)+(x+1)*2+...+(x+1)*2^x>=N
……
阅读全文——共261字

SGU 131 解题手记

  棋盘覆盖问题,用状态压缩的递推来做,一行的填充状态用二进制数s表示,以f[i][s]表示前i-1行全部填满,第i行状态是s的方案数,则:
f[0][1\dots 11]=1
f[i][s_0]=\Sigma f[i-1][s_k] (若1\dots 1\\s_k\\0\dots 0能通过一种填充方式转变成1\dots 1\\1\dots 1\\s_k)。
……
阅读全文——共1139字