平面上有个n点,并且第i个点的坐标是(i,yi)。 确定是否有可能绘制两条平行且不重叠的线,以使集合中的每个点恰好位于这两条线上。(保证它们中的每一条都穿过集合中的至少一个点。) 如果可以绘制出这样的两条线,输出Yes,否则输出No。
区块链毕设网qklbishe.com为您提供问题的解答
平面上有个n点,并且第i个点的坐标是(i,yi)。 确定是否有可能绘制两条平行且不重叠的线,以使集合中的每个点恰好位于这两条线上。(保证它们中的每一条都穿过集合中的至少一个点。)
如果可以绘制出这样的两条线,输出Yes,否则输出No。
def can_draw_parallel_lines(n, y_values): # 遍历所有点,选择每一对不同的 y 值 for i in range(n): for j in range(i + 1, n): y1, y2 = y_values[i], y_values[j] if y1 == y2: continue # 如果 y1 和 y2 相等,则跳过 above = below = 0 # 分别统计落在 y1 和 y2 之上的点 for k in range(n): if k == i&nbs***bsp;k == j: continue # 跳过选中的点 if y_values[k] > max(y1, y2): above += 1 elif y_values[k] < min(y1, y2): below += 1 # 如果 above 和 below 都大于0意味着每条线至少覆盖了一个点 if above > 0 and below > 0: return "Yes" return "No" # 读取输入 n = int(input()) y_values = list(map(int, input().split())) # 获取结果并打印 result = can_draw_parallel_lines(n, y_values) print(result) #如果所有点都可以分类到两条线的上方或下方且没有重叠的 y 值,则输出 "Yes"。
11:49
以上就是关于问题平面上有个n点,并且第i个点的坐标是(i,yi)。 确定是否有可能绘制两条平行且不重叠的线,以使集合中的每个点恰好位于这两条线上。(保证它们中的每一条都穿过集合中的至少一个点。)
如果可以绘制出这样的两条线,输出Yes,否则输出No。的答案
欢迎关注区块链毕设网-
web3一级市场套利打新赚钱空投教程
区块链NFT链游项目方科学家脚本开发培训