最重要的是找规律。

下面是引用 http://blog.sina.com.cn/s/blog_4dc813b20100snyv.html

的讲解:

  

 做这题时,千万不要被那个图给吓着了,其实这题就是道简单的数学题。

 首先看当m或n中有一个为2的情况,显然,只需要算周长就OK了。即(m+n-)*,考虑到至少其中一个为2,所以答案为2 *m或2*n,亦即m*n。注意这里保证了其中一个数位偶数。
当m,n≥3时,考虑至少其中一个为偶数的情况,显然,这种情况很简单,可以得出,结果为m*n,又可以和上面这种情况合并。 下面看m,n均为奇数的情况,由于不好贴图,且这题又比较简单,就不多说了,就写个最后的公式吧:
(m+n-)*-+sqrt()+(n-)*(m-)+(m-)=m*n-+sqrt()
本来还要考虑m,n互换后求最小值的,看到最后的公式后,也就不用再算了。考虑到题目里面要求保留两位小数,所以最终,公式直接定为:m*n+0.14

其中补充一张图,

  

原题:

1015.   Gridland


Time Limit: 1.0 Seconds   Memory Limit: 65536K
Total Runs: 5338   Accepted Runs: 2102

Background

For years, computer scientists have been trying to find efficient solutions
to different computing problems. For some of them efficient algorithms are
already available, these are the "easy" problems like sorting, evaluating a
polynomial or finding the shortest path in a graph. For the "hard" ones only
exponential-time algorithms are known. The traveling-salesman problem belongs to
this latter group. Given a set of N towns and roads between these towns,
the problem is to compute the shortest path allowing a salesman to visit each of
the towns once and only once and return to the starting point.

Problem

The president of Gridland has hired you to design a program that calculates
the length of the shortest traveling-salesman tour for the towns in the country.
In Gridland, there is one town at each of the points of a rectangular grid.
Roads run from every town in the directions North, Northwest, West, Southwest,
South, Southeast, East, and Northeast, provided that there is a neighbouring
town in that direction. The distance between neighbouring towns in directions
North–South or East–West is 1 unit. The length of the roads is measured by the
Euclidean distance. For example, Figure 7 shows 2 × 3-Gridland, i.e., a
rectangular grid of dimensions 2 by 3. In 2 × 3-Gridland, the shortest tour has
length 6.


Figure 7: A
traveling-salesman tour in 2 × 3-Gridland.

Input

The first line contains the number of scenarios.

For each scenario, the grid dimensions m and n will be given as
two integer numbers in a single line, separated by a single blank, satisfying 1
< m < 50 and 1 < n < 50.

Output

The output for each scenario begins with a line containing "Scenario
#i:", where i is the number of the scenario starting at 1. In the
next line, print the length of the shortest traveling-salesman tour rounded to
two decimal digits. The output for every scenario ends with a blank line.

Sample Input

2
2 2
2 3

Sample Output

Scenario #1:
4.00 Scenario #2:
6.00

Source: Northwestern
European 2001

源代码:

 #include <iostream>
#include <iomanip>
#include <cmath>
using namespace std; int main() {
int N; cin >> N;
for (int i = ; i < N; i++) {
int a, b; double res, l;
cin >> a >> b;
if (a % == || b % == ) res = a * b;
else res = a * b - 1.0 + sqrt(2.0);
cout << "Scenario #" << i+ << ":" << endl;
cout << fixed << setprecision() << res << endl;
cout << endl;
}
return ;
}

最新文章

  1. Data对象
  2. IIS错误处理集合
  3. 前端模板之EasyUI常用控件及参数
  4. C#之系统自带保存属性
  5. 20145225《Java程序设计》 2015—2016年学期课程总结
  6. 【Theano】安装Theano
  7. [CareerCup] 4.1 Balanced Binary Tree 平衡二叉树
  8. Ubuntu 怎么在右键添加打开终端
  9. LUA 捕获模式 URL编码的例子解析
  10. 基于Ubuntu 14.04构建mysql5.6 Docker镜像
  11. lucene&amp;solr-day1
  12. C#核心语法讲解-泛型(详细讲解泛型方法、泛型类、泛型接口、泛型约束,了解协变逆变)
  13. js处理数字加后缀w
  14. 我踩过的Alwayson的坑!
  15. A1146. Topological Order
  16. python 参数解析ArgumentParser
  17. &lt;string.h&gt;的学习
  18. testng入门教程9 TestNG依赖测试
  19. .NET Core2.0应用IdentityServer4
  20. Shell编写8点建议

热门文章

  1. ORA-01940:无法删除当前已连接的用户
  2. 关于React性能优化
  3. tryparse
  4. 3.6 MIPS指令简介
  5. UVA-10710 Skyscraper Floors (找规律+幂取模)
  6. Leetcode 74
  7. iOS UI-文本视图(UITextView)
  8. sql Server如何执行批量插入和批量删除
  9. POJ 1754 线段树
  10. SQL*Loader 详解