POJ 2411 轮廓线DP

实在不懂看这里:点击打开链接


解题思路:一个n*m的方格格子,用从左到右从上到下的顺序可以找出m个格子形成轮廓线,使得轮廓线第一个格子后面全部都是已铺满的状态。

一个格子可以选择不放,或者上放,或左放,放了之后肯定不会影响到上一个状态的轮廓线方案数,因为这两个位置都是0.

这时新的状态轮廓线就可以加上上一个状态轮廓线的方案数了。

//#include
#include
#include
#include
using namespace std;
typedef long long ll;
const int mx = 15;
int n,m,cur;
ll dp[2][1<n) swap(n,m);
		memset(dp[cur=0],0,sizeof(dp[0]));
		dp[0][(1<


你可能感兴趣的:(DP)