poj 3740 Easy Finding
2011-07-22 16:51
155 查看
#include<iostream> //按列dfs暴搜 using namespace std; int m,n,table[18][305],visited[18],tag[305],num; void dfs(int start) { int i,j,over; if(tag[start]==1) dfs(start+1); else for(i=0;i<m;++i) { if(visited[i]==1||table[i][start]==0) continue; over=0; for(j=0;!over&&j<n;++j) if(table[i][j]+tag[j]>1) over=1; if(over==1) continue; for(j=start;j<n;++j) if(table[i][j]==1) tag[j]=1,num++; visited[i]=1; if(num==n) return; dfs(start+1); if(num==n) return; for(j=start;j<n;++j) if(table[i][j]==1) tag[j]=0,num--; visited[i]=0; } } int main() { while(scanf("%d%d",&m,&n)!=EOF) { for(int i=0;i<m;++i) for(int j=0;j<n;++j) scanf("%d",&table[i][j]); memset(tag,0,sizeof(tag)); memset(visited,0,sizeof(visited)); num=0; dfs(0); if(n&&num==n) //保证n不为0 printf("Yes, I found it\n"); else printf("It is impossible\n"); } return 0; }
相关文章推荐
- POJ 3740 Easy Finding
- [ACM] POJ 3740 Easy Finding (DLX模板题)
- poj - 3740 - Easy Finding(精确覆盖DLX)
- POJ 3740 Easy Finding (Exact cover problem)
- poj3740 Easy Finding(深搜)
- POJ-3740-Easy Finding【DLX精确覆盖】
- poj 3740 Easy Finding(Dancing Links 精确覆盖)
- [ACM] POJ 3740 Easy Finding (DFS)
- 【POJ】3740 Easy Finding
- POJ 3740 Easy Finding【Dancinglinks】
- poj 3740 -- Easy Finding (dfs)
- [ACM] POJ 3740 Easy Finding (DFS)
- poj 3740 Easy Finding
- [ACM] POJ 3740 Easy Finding (DFS)
- POJ 3740 Easy Finding (DLX模板)
- POJ 3740 Easy Finding
- poj 3740 Easy Finding 精确匹配
- POJ 3740 - Easy Finding (Dancing links)
- POJ 3740 Easy Finding 详细讲解
- POJ 3740 Easy Finding(DLX精确覆盖裸题)