2011年10月16日

poj2411 Mondriaan's Dream 棋盘覆盖

摘要: 问题描述:给出一个n*m的棋盘,及一个小的矩形1*2,问用这个小的矩形将这个大的棋盘覆盖有多少种方法。由于我们放置小矩形的时候可以横着放也可以竖着放,那么就会产生不同的方法,但是必须满足不产生空的未覆盖的空格子。首先我们用二进制1 0表示在某一个问题放置或者不放置,那么有m列的棋盘,每一行有2*m个状态了,我们现在就找出每行之间的规律。对于一个矩形有3种方法:横放,竖放,不放。由于第i行只跟第i-1行的放置有关系,因为我们必须保证第i-1行使放满的,现在用dp[i][state]表示第i行状态为state的方法,那么dp[i][curstate]=sum{dp[i-1][prestate]}. 阅读全文

posted @ 2011-10-16 18:00 buptLizer 阅读(1729) 评论(0) 推荐(0) 编辑

导航