农夫约翰的牧场可以看作是一个二维平面。
约翰为了方便看管他养的牛,构建了一个三角形的通电围栏。
他希望他的奶牛都在围栏围起的区域内活动。
三角形围栏的三个顶点位置坐标分别为 (0,0),(n,m),(p,0),该围栏由三个顶点两两相连而成。
平面上,所有位于三角形围栏内部(不包括边)且横纵坐标都为整数的点上都可以放置一头奶牛。
请问,围栏中最多可以放置多少头奶牛。
输入格式
共一行,包含三个整数 n,m,p。
输出格式
输出一个整数,表示可放置的牛的最大数量。
数据范围
0≤n<32000,
00
输入样例:
7 5 10输出样例:
20
本题直接求解非常难做,需要掌握皮克定理进行求解。
皮克定理描述如下 :
皮克定理是指一个计算点阵中顶点在格点上的多边形面积公式,该公式可以表示为S=a+b÷2-1,其中a表示多边形内部的点数,b表示多边形落在格点边界上的点数,S表示多边形的面积
面积S显然很好求,而b的计算方法是:将每个边长中的一个点移动到原点,此时不在原点的那个顶点的坐标假设为(x,y), 此时这个边长上的整点数量 = x 和 y 的最大公因数。
from math import gcd
n,m,p = map(int,input().split())
point = [(0,0),(n,m),(p,0)]s = m * p
b = 0 for i in range(3) :for j in range(i+1,3) :b += abs(gcd(point[i][0] - point[j][0], point[i][1] - point[j][1])) print((s - b + 2) // 2)
上一篇:巴雷拉倒三角造混乱,邓弗里斯补射破门 邓弗里斯单刀被迈尼昂神勇扑出 巴雷拉凌空球传中
下一篇:PPI捶爆降息预期,美债跳水,美股回落,AI“妖股”超微高台跳水20%,龙年首周中概连赢大盘 ppi涨幅扩大对股市是利好还是利空 ppi利好股市吗