杭电1045
来源:互联网 发布:软件业务需求分析 编辑:程序博客网 时间:2024/06/06 04:26
上链接:杭电1045
题目大意:
黑点为一个炮台,可以往四个方向射击,墙会挡住子弹,求输入的地图中能存在的炮台最大数
贴代码:
#include<cstdio>using namespace std;int n;char map[5][5];bool judge(int t[][5]){for(int i=1; i<=n; ++i)for(int j=1; j<=n; ++j)if(t[i][j]==0)return false;return true;}int dfs(int t[][5]){int i, j, l, c, maximum=0;if(judge(t))return 0;for(i=1; i<=n; ++i)for(j=1; j<=n; ++j){if(t[i][j])continue;int tt[5][5];for(l=1; l<=n; ++l)for(c=1; c<=n; ++c)tt[l][c]=t[l][c];tt[i][j]=2;for(l=i,c=j; t[l][c]!=1&&c<=n; ++c)tt[l][c]=2;for(l=i,c=j; t[l][c]!=1&&c>=1; --c)tt[l][c]=2;for(l=i,c=j; t[l][c]!=1&&l<=n; ++l)tt[l][c]=2;for(l=i,c=j; t[l][c]!=1&&l>=1; --l)tt[l][c]=2;int x=1+dfs(tt);if(x>maximum)maximum=x;}return maximum;}int main(){int i,j;while(scanf("%d", &n)!=EOF && n){getchar();for(i=1; i<=n; ++i){for(j=1; j<=n; ++j)scanf("%c", &map[i][j]);getchar();}int t[5][5];for(i=1; i<=n; ++i)for(j=1; j<=n; ++j)t[i][j]=map[i][j]=='.'?0:1;printf("%d\n", dfs(t));}return 0;}
0 0
- 杭电 acm 1045
- 杭电1045
- 杭电1045
- 杭电1045
- 杭电1045 Fire Net
- 杭电1045解题报告
- 杭电 1045 Fire Net
- 杭电
- 杭电
- 杭电
- 杭电 hdu 1045 Fire Net
- 杭电hdu 1045 Fire Net dfs
- 杭电 1045题 Fire Net
- 杭电OJ 1045:Fire Net
- Fire Net 杭电1045(DFS)
- 杭电1045 Fire Net(DFS)
- 杭电1045(zoj1002)Fire Net
- Fire Net HDU杭电1045【DFS】
- 欢迎使用CSDN-markdown编辑器
- Java中的动态绑定和静态绑定
- 将一个或多个OC对象写入文件/从文件读出
- 在Windows上编译V8 javascript引擎
- 博客第一天
- 杭电1045
- iBatis调用存储过程的方法
- 博弈
- java静态绑定和动态绑定小结
- android 组件SeekBar实例
- 【LeetCode】(263)Ugly Number(Easy)
- 实习中
- day9: 内存管理初级:内存管理的方式、引用计数机制,影响计数的各个方法、dealloc方法、内存管理的基本原则
- word文档转换为PDF、jpg、HTML、txt、swf