POJ 2032 Square Carpets

题目大意:

题目链接

注释代码:

/*                                       
 * Problem ID : POJ 2032 Square Carpets
 * Author     : Lirx.t.Una                                       
 * Language   : C++                           
 * Run Time   : 0 ms                                       
 * Run Memory : 180 KB                                       
*/

#include <iostream>
#include <climits>
#include <cstring>
#include <cstdio>
#include <bitset>
#include <vector>

#define	MAXW	10

using namespace std;

bitset<MAXW + 1>			g[MAXW + 1];
char						dp_w[MAXW + 1][MAXW + 1];
vector<pair<char, char> >	cov;
vector<char>				to_cov[MAXW + 1][MAXW + 1];
bool						vis_cov[MAXW * MAXW];
bool						cp_vis_cov[MAXW * MAXW];

int		w, h;
int		hval;
int		bound;
int		stp;

inline int
min( int a, int b ) {

	return a < b ? a : b;
}

int
h_val(void) {

	int		i, j, k;
	int		lft;

	memcpy(cp_vis_cov, vis_cov, sizeof(vis_cov));

	lft = 0;
	for ( i = 1; i <= h; i++ )
		for ( j = 1; j <= w; j++ )
			if ( g[i][j] ) {
			
				for ( k = 0; k < to_cov[i][j].size(); k++ )
					if ( cp_vis_cov[ to_cov[i][j][k] ] )
						goto _h_val_CONT_;
				
				lft++;
				for ( k = 0; k < to_cov[i][j].size(); k++ )
					cp_vis_cov[ to_cov[i][j][k] ] = true;

_h_val_CON
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值