HDU 1045 Fire Net
2011-09-06 15:34
337 查看
该题我直接用的暴力搜索,因为之最大只有4*4,这个题最重要的是标记;
#include<stdio.h> #include<stdlib.h> int max,map[6][6]; int flagx(int i,int j, int n) { int re=0; for( int k=i;k<n;k++ ) { if( map[k][j]=='X' ) break; if( map[k][j]=='.' ) { map[k][j]=i; re++; } } for( int k=i;k>=0;k-- ) { if( map[k][j]=='X' ) break; if( map[k][j]=='.' ) { map[k][j]=i; re++; } } return re; } int flagx1(int i,int j ,int n) { int re=0; for( int k=i;k<n;k++ ) { if( map[k][j]=='X' ) break; if( map[k][j]==i ) { re++; map[k][j]='.'; } } for( int k=i;k>=0;k-- ) { if( map[k][j]=='X' ) break; if( map[k][j]==i ) { re++; map[k][j]='.'; } } return re; } int flagy( int i,int j ,int n) { int re=0; for( int k=j;k<n;k++ ) { if( map[i][k]=='X' ) break; if( map[i][k]=='.' ) { map[i][k]=i; re++; } } for( int k=j;k>=0;k-- ) { if( map[i][k]=='X' ) break; if( map[i][k]=='.' ) { map[i][k]=i; re++; } } return re; } int flagy1( int i,int j ,int n) { int re=0; for( int k=j;k<n;k++ ) { if( map[i][k]=='X' ) break; if( map[i][k]==i ) { map[i][k]='.'; re++; } } for( int k=j;k>=0;k-- ) { if( map[i][k]=='X' ) break; if( map[i][k]==i ) { map[i][k]='.'; re++; } } return re; } void DFS( int count,int n,int sum ) { if( sum==n*n ) { if( max<count ) max=count; return ; } for( int i=0;i<n; i++ ) for( int j=0; j<n ; j++ ) { if( map[i][j]=='.' ) { sum+=flagx( i,j,n ); sum+=flagy( i,j ,n); DFS(count+1, n,sum ); sum-=flagx1( i,j ,n); sum-=flagy1( i,j ,n); } } } int main() { int n; while( scanf( "%d%*c",&n ),n ) { int sum=0; max=0; for( int i=0;i<n;i++ ) { for( int j=0;j<n; j++ ) { scanf( "%c",&map[i][j] ); if( map[i][j]=='X' ) sum++; } getchar(); } DFS(0, n,sum ); printf( "%d\n",max ); } return 0; }
相关文章推荐
- [面试备] 暴搜 or 二分图的经典升级 : hdu 1045 Fire Net 示例 [ 讲解之用 ]
- [面试备] 暴搜 or 二分图的经典升级 : hdu 1045 Fire Net 示例 [ 二分图 ]
- hdu 1045 Fire Net
- HDU1045 Fire Net
- [面试备] 暴搜 or 二分图的经典升级 : hdu 1045 Fire Net 示例 [ 二分图 ]
- 【二分图匹配】Fire Net HDU - 1045
- HDU--1045--Fire Net--DFS
- HDU-1045-Fire Net [二分匹配][匈牙利算法]
- HDU 1045——Fire Net——————【最大匹配、构图、邻接矩阵做法】
- 杭电hdu 1045 Fire Net dfs
- hdu 1045 Fire Net
- HDU 1045 Fire Net 二分图
- HDU 1045 Fire Net【DFS深搜】
- HDU 1045 Fire Net【DFS】
- HDU 1045 Fire Net
- HDU 1045-Fire Net
- HDU 1045 Fire Net
- HDU 1045 Fire Net
- HDU 1045 Fire Net 二分图Bipartite题解
- hdu 1045 Fire Net-二分匹配