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, 6uva 11044 Searching for Nessynmuva 11044 Searching for Nessy10000, 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,

 


uva 11044 Searching for Nessyuva 11044 Searching for Nessy

 

uva 11044 Searching for Nessy

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, 6uva 11044 Searching for Nessynmuva 11044 Searching for Nessy10000, that is, the size of the grid (n rows 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 

 

 
3
6 6
7 7
9 13

 

Sample Output 

 

 
4
4
12

 

貌似题目很长很难,其实很简单,稍微思考一下就可以了,没必要过多解释。这种题目要重视,千万不要被题目的长度吓住了。这种题目是纸老虎。

拙劣的代码
 1 #include <iostream>
 2 #include <cstdlib>
 3 #include <cstdio>
 4 
 5 using namespace std;
 6 
 7 int main(void)
 8 {
 9     int n, m, t;
10 
11     cin >> t;
12     while (t--)
13     {
14         cin >> n >> m;
15         n -= 2; m-= 2;
16         n = n / 3 + (n % 3 != 0);
17         m = m / 3 + (m % 3 != 0);
18         cout << n * m << endl;
19     }
20 
21     return 0;
22 }

相关文章:

  • 2022-12-23
  • 2021-11-04
  • 2021-08-04
  • 2022-12-23
  • 2021-11-18
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-23
  • 2021-12-27
  • 2021-10-22
  • 2022-12-23
相关资源
相似解决方案