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: ...
随机推荐
- django查询集API
本节将详细介绍查询集的API,它建立在下面的模型基础上,与上一节的模型相同: from django.db import models class Blog(models.Model): name = ...
- Codeforces 614E - Necklace
614E - Necklace 思路:如果奇数超过1个,那么答案是0:否则,所有数的gcd就是答案. 构造方案:每个数都除以gcd,如果奇数个仍旧不超过1个,找奇数个那个在中间(如果没有奇数默认a), ...
- TestNG 101
最近看了点TestNG,做个入门笔记 0.Maven + TestNG 0a. 创建Maven 项目,pom中添加依赖(可能还需要安装TestNG插件 <dependencies> < ...
- C++STL1--set
C++STL1--set 一.说明 set的用法:单一元素,自动排序set的方法:用编译器的提示功能即可,不需要自己记 二.简单测试 /* 安迪的第一个字典 set的用法:单一元素,自动排序 set的 ...
- 安装 tensorflow 时遇到 OSError: [Errno 1] Operation not permitted 的解决办法
Installing collected packages: numpy, scipy, six, pyyaml, Keras, opencv-python, h5py, html5lib, blea ...
- 解决jenkins运行selenium测试出错的问题
If you run Jenkins as a service in the background it won't open apps in the foreground. You may eith ...
- Confluence 6 为站点启用匿名用户访问
如果你希望你的站点能够被所有人看到,包括不需要登录就可以访问的用户.你必须为你的站点启用匿名用户访问权限才可以. 希望启用匿名用户访问你的站点: 在屏幕的右上角单击 控制台按钮 ,然后选择 Gener ...
- Knights of a Polygonal Table CodeForces - 994B (贪心)
大意:n个骑士, 每个骑士有战力p, 钱c, 每个骑士可以抢战力比他低的钱, 每个骑士最多抢k次, 对每个骑士求出最大钱数 按战力排序后, 堆维护动态前k大即可 #include <iostre ...
- Krapno 1
All krpano software can be downloaded and tested for free - without any functional limitation.For us ...
- CoderForce 141C-Queue (贪心+构造)
题目大意:一个队伍,每个人只记得前面比他高的人的个数x.现在将队伍散开,问能否构造出一支满足条件的队伍,如果能,再给每个人一个满足题意的身高. 题目分析:一个一个排,x越少越先排,如果x比已经排好的人 ...