
呆萌的猫咪,哈哈哈哈哈。

翻译
最小的正方形
找到最小面积的一个正方形陆地,以保证可以放置两个 a * b 的长方形屋子,要求房屋的边与方形边平行。也就是不允许斜着放。
- 提供给你两个一样的长方形,边长分别是 a 和 b,只指定边长不指定位置。
- 找到一个最小面积的正方形,可以包含提供的两个矩形,矩形可以旋转和移动,但是矩形的边必须与正方形平行
两个矩形可以挨着但是不能重叠,可以挨着边框但是不能超出。
输入格式
输入 t ,表示测试用例组数。
接下来每组测试用例输入 a b,用空格分隔。
输出格式
每个测试用例单独输出一行,正方形的面积。
分析
贪心算法,长边相接占用面积最小,然后用拼接后的长边的平方就是答案。
可以想象到,拼接后的长边的平方就是答案,而长边相接得到的方形的长边最小。
代码(PyPy3)

# https://codeforces.com/problemset/problem/1360/A
import sys
import os
import heapq
try:
path = "./file/input.txt"
if os.path.exists(path):
sys.stdin = open(path, 'r')
# sys.stdout = open(r"./file/output.txt", 'w')
except:
pass
t = int(input())
def printd(value):
# print(value)
pass
for _ in range(t):
arr = list(map(int, input().split(" ")))
a, b = arr[0], arr[1]
if a > b:
b *= 2
else:
a *= 2
if a > b:
result = a * a
else:
result = b * b
print(result)
更多代码尽在 https://github.com/Tconan99/Codeforces
by 费城的二鹏 2020.05.25 长春
网友评论