TJU Problem 1015 Gridland
最重要的是找规律。
下面是引用 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 ;
}
TJU Problem 1015 Gridland的更多相关文章
- FOJ Problem 1015 土地划分
Problem 1015 土地划分 Accept: 823 Submit: 1956Time Limit: 1000 mSec Memory Limit : 32768 KB Probl ...
- TJU Problem 2101 Bullseye
注意代码中: result1 << " to " << result2 << ", PLAYER 1 WINS."<& ...
- TJU Problem 2548 Celebrity jeopardy
下次不要被长题目吓到,其实不一定难. 先看输入输出,再揣测题意. 原文: 2548. Celebrity jeopardy Time Limit: 1.0 Seconds Memory Lim ...
- TJU Problem 2857 Digit Sorting
原题: 2857. Digit Sorting Time Limit: 1.0 Seconds Memory Limit: 65536KTotal Runs: 3234 Accepted ...
- TJU Problem 1065 Factorial
注意数据范围,十位数以上就可以考虑long long 了,断点调试也十分重要. 原题: 1065. Factorial Time Limit: 1.0 Seconds Memory Limit ...
- TJU Problem 1100 Pi
注: 1. 对于double计算,一定要小心,必要时把与double计算相关的所有都变成double型. 2. for (int i = 0; i < N; i++) //N 不 ...
- TJU Problem 2520 Quicksum
注意: for (int i = 1; i <= aaa.length(); i++) 其中是“ i <= ",注意等号. 原题: 2520. Quicksum Time L ...
- TJU Problem 1090 City hall
注:对于每一横行的数据读取,一定小心不要用int型,而应该是char型或string型. 原题: 1090. City hall Time Limit: 1.0 Seconds Memory ...
- TJU Problem 1644 Reverse Text
注意: int N; cin >> N; cin.ignore(); 同于 int N; scanf("%d\n",&N); 另:关于 cin 与 scanf: ...
随机推荐
- Android Fragment与Activity通讯详解
与activity通讯 尽管fragment的实现是独立于activity的,可以被用于多个activity,但是每个activity所包含的是同一个fragment的不同的实例. Fragment可 ...
- C#读写记事本(txt)文件
C#写入记事本(txt)文件方法一: FileStream stream = new FileStream(@"d:\aa.txt",FileMode.Create);//file ...
- hdu 2018多校8
A.Character Encoding 简单计数 m个非负数和等于k的方案数为$\binom{m+k-1}{k}$, 但题目还要求每个数小于n, 容斥一下即可 即$ans = \sum\limits ...
- Three Pieces CodeForces - 1065D (BFS)
链接 大意: n*n棋盘, 每个格子写有数字, 各不相同, 范围[1,n*n], 初始在数字1的位置, 可以操纵knight,bishop,rook三种棋子, 每走一步花费1, 交换棋子花费1, 问按 ...
- Perfect Groups CodeForces - 980D
链接 题目大意: 定义一个问题: 求集合$S$的最小划分数,使得每个划分内任意两个元素积均为完全平方数. 给定$n$元素序列$a$, 对$a$的所有子区间, 求出上述问题的结果, 最后要求输出所有结果 ...
- 总结: MySQL(基础,字段约束,索引,外键,存储过程,事务)操作语法
1. 显示数据库列表 show databases; # 查看当前所有数据库 show databases \G #以行的方式显示 2. 在命令行中,执行sql语句 mysql -e 'show ...
- ASP.NET的内置对象 —— Response 对象
在 ASP.NET 中,页面实际上是一个输出 HTML 的可执行对象. 传统的 ASP 程序通常将 ASP 代码和 HTML 标签集成在一个文件中,或者将其分离于多个文 件. 当执行文件时,服务器回从 ...
- EBS OAF开发中的错误/异常处理(ErrorHandling) (转)
原文地址 EBS OAF开发中的错误/异常处理(ErrorHandling) EBS OAF开发中的错误/异常处理(ErrorHandling) (版权声明,本人原创或者翻译的文章如需转载,如转载用于 ...
- 组播IP地址
组播IP地址组播IP地址用于标识一个IP组播组.IANA(internet assigned number authority)把D类地址空间分配给IP组播,其范围是从224.0.0.0到239.25 ...
- 微信小程序--登录流程梳理
前言 微信小程序凡是需要记录用户信息都需要登录,但是也有几种不同的登录方式,但是在小程序部分的登录流程是一样的.之前就朦朦胧胧地用之前项目的逻辑改改直接用了,这个新项目要用就又结合官方文档重新梳理了下 ...