博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BNUOJ 1038 Flowers
阅读量:4360 次
发布时间:2019-06-07

本文共 891 字,大约阅读时间需要 2 分钟。

春天到了,师大的园丁们又开始忙碌起来了.

京师广场上有一块空地,边界围成了一个多边形,内部被划分成一格一格的.园丁们想在这个多边形内的每一格内种植一些花.
现在请你帮忙计算一下一共最多可以种多少花.
广场用一个M*N的字符数组表示,"."和"*"代表一个方格,其中"*"代表空地的边界,"."是空格,只有边界内部的空格才能用于种花.
一个空格位于边界内部,当且仅当由该点出发只允许向上、下、左、右四个方向移动,最终都会遇到边界。
例如下面就是一个6*7的广场
.......
..***..
..*..*.
..*..*.
...**..
.......
种花方案如下(数字代表的地方)
.......
..***..
..*12*.
..*34*.
...**..
.......

 

Input

输入数据第一行是M和N(M和N不超过100),代表有广场的大小
接下来就是一个M*N的字符矩阵,是广场的表示
 

Output

对应于输入数据,输出一个整数,给出输入的情形能够种的花数目.
 

Sample Input

6 7.........***....*..*...*..*....**.........5 7.........***....*.*....***.........

Sample Output

41 一般想得到的方法是搜索大法,当然这道题也可以直接暴力循环
#include
int k[102][102];char l[102];int n,m;int x[4]={-1,0,0,1},y[4]={
0,-1,1,0};void dfs(int a,int b){ for(int i=0;i<4;i++) { int xx=a+x[i]; int yy=b+y[i]; if(xx>-1&&xx
-1&&yy
View Code

 

转载于:https://www.cnblogs.com/dzzy/p/4893333.html

你可能感兴趣的文章
MyEclipse下SpringBoot+JSP整合过程及踩坑
查看>>
重定向和管道
查看>>
实验五
查看>>
STL学习笔记(第二章 C++及其标准程序库简介)
查看>>
Operator_countByValue
查看>>
Java 日期往后推迟n天
查看>>
Web应用漏洞评估工具Paros
查看>>
Git 和 Github 使用指南
查看>>
20180925-4 单元测试
查看>>
mysql的数据存储
查看>>
[转载] Activiti Tenant Id 字段释疑
查看>>
[Java 8] (8) Lambda表达式对递归的优化(上) - 使用尾递归 .
查看>>
SQL Server-聚焦移除Bookmark Lookup、RID Lookup、Key Lookup提高SQL查询性能
查看>>
最小权限的挑战
查看>>
jquery 视觉特效(水平滚动图片)
查看>>
SVG笔记
查看>>
linux下使用dd命令写入镜像文件到u盘
查看>>
物联网架构成长之路(8)-EMQ-Hook了解、连接Kafka发送消息
查看>>
2018-2019-1 20165234 20165236 实验二 固件程序设计
查看>>
IDEA的GUI连接数据库写入SQL语句的问题总结
查看>>