#hdu4770# #2013杭州现场赛# A:Lights Against Dudely
来源:互联网 发布:软件评测中心招聘 编辑:程序博客网 时间:2024/05/16 13:00
水。只是坑了一点。。不解释。。。
#include<iostream>#include <cstring>#include <cstdio>#include <cmath>#include <cstdlib>#include<algorithm>#define LL long longusing namespace std;char s[222][222];int n,m,d,dir[4][2]={1,0,-1,0,0,1,0,-1};int vis[222][222];struct point{ int x,y;}p[16];bool bg(int x,int y,int k,int t)//变更{ int dir[4][2]={-1,1,1,-1,1,1,-1,-1}; if(s[x][y]!='.') return 0; if(x+dir[k][0]>=0 && x+dir[k][0]<n && s[x+dir[k][0]][y]!='.') return 0; if(y+dir[k][1]>=0 && y+dir[k][1]<m && s[x][y+dir[k][1]]!='.') return 0; vis[x][y]+=t; if(x+dir[k][0]>=0) vis[x+dir[k][0]][y]+=t; if(y+dir[k][1]>=0) vis[x][y+dir[k][1]]+=t; return 1;}int solve(int x,int ans,int k){ int mina=20,i,j; if(x==d) { for(i=0;i<d;i++) if(vis[p[i].x][p[i].y]==0) return 20; return ans; } mina=min(mina,solve(x+1,ans,k)); if(bg(p[x].x,p[x].y,0,1)) { mina=min(mina,solve(x+1,ans+1,k)); bg(p[x].x,p[x].y,0,-1); } if(k) { for(i=1;i<4;i++) { if(bg(p[x].x,p[x].y,i,1)) { mina=min(mina,solve(x+1,ans+1,0)); bg(p[x].x,p[x].y,i,-1); } } } return mina;}int main(){ while(cin>>n>>m) { if(n==0 && m==0) break; int i,j,k; d=0; for(i=0;i<n;i++) { for(j=0;j<m;j++) { cin>>s[i][j]; if(s[i][j]=='.') { p[d].x=i; p[d].y=j; d++; } } } memset(vis,0,sizeof(vis)); int ans=solve(0,0,1); if(ans<=17) cout<<ans<<endl; else puts("-1"); } return 0;}
- #hdu4770# #2013杭州现场赛# A:Lights Against Dudely
- HDU 4770 Lights Against Dudely -- 2013 杭州赛区现场赛-A(状态压缩)
- hdu4770 Lights Against Dudely
- HDU 4770 Lights Against Dudely(暴力枚举) 2013杭州现场赛
- 2013杭州站A - Lights Against Dudely(状态模拟)
- hdu4770 暴力状压 Lights Against Dudely (2013 Asia Hangzhou Regional Contest problem A)
- hdu 4770 Lights Against Dudely (2013亚洲区域赛杭州站 A)
- hdu4770:Lights Against Dudely(回溯 + 减枝)
- HDU4770 —— Lights Against Dudely (状态压缩,暴力枚举)
- 4770Lights Against Dudely
- HDU 4770Lights Against Dudely(2013 Asia Hangzhou Regional Contest A)
- hdu 4770 Lights Against Dudely
- HDU:4770 Lights Against Dudely
- HDU 4770 Lights Against Dudely
- hdu 4770 Lights Against Dudely
- hdu 4770 Lights Against Dudely
- HDU 4770 Lights Against Dudely
- HDU 4770 Lights Against Dudely
- Session生命周期
- C++数据结构03--排序算法
- epoll使用经典入门
- Java类型决定行为,而不是大小
- C++数据结构实验04--线性表操作
- #hdu4770# #2013杭州现场赛# A:Lights Against Dudely
- iOS开发教程:Storyboard全解析-第一部分
- linux grep命令
- NSMutableURLRequest实现Post访问
- Hbase简介
- HTML5+JS开发学习
- win7-64,vs2010带的vc10环境下用dos编译C++的步骤
- iOS开发教程:Storyboard全解析-第二部分
- P45-02