博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVa 11044 - Searching for Nessy
阅读量:6961 次
发布时间:2019-06-27

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

Searching for Nessy

The Loch Ness Monsteris a mysterious and unidentified animal said to inhabit Loch Ness,  a large deep freshwater loch near the city of Inverness in northern Scotland. Nessie is usually categorized as a type of lake monster. http://en.wikipedia.org/wiki/Loch_Ness_Monster

 

 

In July 2003, the BBC reported an extensive investigation of Loch Ness by a BBC team, using 600 separate sonar beams, found no trace of any ¨sea monster¨ (i.e., any large animal, known or unknown) in the loch. The BBC team concluded that Nessie does not exist. Now we want to repeat the experiment.

 

Given a grid of n rows and m columns representing the loch, 6$ \le$n, m$ \le$10000, find the minimum number s of sonar beams you must put in the square such that we can control every position in the grid, with the following conditions:

 

  • one sonar occupies one position in the grid; the sonar beam controls its own cell and the contiguous cells;
  • the border cells do not need to be controlled, because Nessy cannot hide there (she is too big).

For example,

 

$\textstyle \parbox{.5\textwidth}{\begin{center}\mbox{}\epsfbox{p11044.eps}\end{center}}$$\textstyle \parbox{.49\textwidth}{\begin{center}\mbox{}\epsfbox{p11044a.eps}\end{center}}$

 

\epsfbox{p11044b.eps}

where X represents a sonar, and the shaded cells are controlled by their sonar beams; the last figure gives us a solution.

 

Input

The first line of the input contains an integer, t, indicating the number of test cases. For each test case, there is a line with two numbers separated by blanks, 6$ \le$n, m$ \le$10000, that is, the size of the grid (nrows and m columns).

 

Output

For each test case, the output should consist of one line showing the minimum number of sonars that verifies the conditions above.

Sample Input

36 67 79 13

 

Sample Output

4412
#include
#include
int main(){ int T, n, m; scanf("%d", &T); while(T--) { scanf("%d%d", &n, &m); if((n-2)%3 != 0) n = (n-2)/3 + 1; else n = (n-2)/3; if((m-2)%3 != 0) m = (m-2)/3 + 1; else m = (m-2)/3; printf("%d\n", n*m); } return 0;}

解题思路:

怪不得通过率那么高,求格中九宫格的最小数量,而且注意题目说了边上的格子是可以不算的,所以可以减去2在进行整除3,当然,如果除不尽当然还是再加上一个九宫格

转载于:https://www.cnblogs.com/liaoguifa/archive/2013/03/05/2944102.html

你可能感兴趣的文章
Memcache集群高可用方案
查看>>
mysql数据据存储引擎InnoDB和MyISAM的优势及区别
查看>>
PowerShell中iso8601格式日期和DateTime对象互转实例
查看>>
MySQL Cluster, Fabric, Cobar 三大集群特性对比
查看>>
SpringBoot(八):测试组件-junit
查看>>
Mysql命令
查看>>
使用chmod命令改变权限
查看>>
java程序使用cmd备份和恢复数据库
查看>>
item点击变色
查看>>
tomcat的配置及负载均衡
查看>>
android基本控件及表单(3)
查看>>
Sharepoint多站点通过apache进行多域名访问
查看>>
Windows Azure 安全控制-ACL
查看>>
linux vsftp配置大全—超完整版
查看>>
ActionBar的移除与显示
查看>>
MySQL 报错
查看>>
数据库启停标准操作流程
查看>>
Mac不能快速传输文件的原因你知道么
查看>>
Qt中QGraphicsView无法自适应图片大小问题
查看>>
经纪人靠边站 草根玩出娱乐“星”时代
查看>>