题目描述

二维平面直角坐标系中有N个整形坐标点(x1,y1),(x2,y2),..(xN,yN),任意三个点都可能构成一个三角形,计算构成三角形的个数。

输入描述

输入有两行:
第一行为N. 3 ≤ N ≤ 256
第二行为输入N个双字节整型坐标点,共2N个数据,以空格分隔横纵坐标及不同的点,x1,y1,x2,y2,...,xn,yn,xN,yN

输出描述

输出直角三角形的个数

示例1

输入输出示例仅供调试,后台判断数据一般不包含示例

输入

4
0 0 2 0 1 1 2 2

输出

3

输入

3
0 0 2 0 1 1

输出

1

题目分析

Python代码实现

from collections import defaultdict
from math import gcd
def countTriangles(P, N): mp = defaultdict(lambda:0) ans = 0for i in range(0, N): mp.clear() for j in range(i + 1, N): X = P[i][0] - P[j][0] Y = P[i][1] - P[j][1]  g = gcd(X, Y) X //= g Y //= g mp[(X, Y)] += 1num = N - (i + 1) ans += (num * (num - 1)) // 2for j in mp: ans -= (mp[j] * (mp[j] - 1)) // 2  return ans if __name__ == "__main__": N = int(input())ls = list(map(int,input().strip().split()))P = []for i in range(0,2*N,2):P.append([ls[i],ls[i+1]])print(countTriangles(P, N))

计算构成三角形的个数相关推荐

  1. 求图中三角形的个数(C++描述)

    首先要给三角形的各个顶点标号,如右图所示.计算三角形的个数,首先要明确三角形的判定方法,怎么判断一个三角形是三角形.我们用边的相交来判定,在图中选择三条边,如果这三条边两两相交且交点就是某一条边的顶点 ...

  2. 蓝桥杯算法训练合集八 1.数的划分2.求先序排列3.平方计算4.三角形高5.单词复数

    目录 1.数的划分 2.求先序排列 3.平方计算 4.三角形高 5.单词复数 1.数的划分 问题描述 将整数n分成k份,且每份不能为空,任意两份不能相同(不考虑顺序). 例如:n=7,k=3,下面三种 ...

  3. 611.有效三角形的个数

    611.有效三角形的个数 贴个题目: 贴个示例: 解题思路: 这道题目,涉及了一个初二的数学知识: 三角形的两边之和大于第三边: 即:a+b>c 也就是这一道题,我们需要做的是,使用两条边,找到 ...

  4. Java黑皮书课后题第3章:**3.19(计算三角形的周长)编写程序,读取三角形的三个边,如果输入值合法就计算这个三角形的周长;否则,显示这些输入值不合法。如果任意两条边的和大于第三边,则输入值都是合

    **3.18(计算三角形的周长)编写程序,读取三角形的三个边,如果输入值合法就计算这个三角形的周长:否则,显示这些输入值不合法.如果任意两条边的和大于第三边,则输入值都是合法的 题目 题目概述 破题 ...

  5. 问题描述 给定一个由n行数字组成的数字三角形如下图所示。试设计一个算法,计算出从三角形的顶至底的一条路径,使该路径经过的数字总和最大。 对于给定的由n行数字组成的数字三角形,计算从三角形的顶至底

    问题描述 给定一个由n行数字组成的数字三角形如下图所示.试设计一个算法,计算出从三角形的顶至底的一条路径,使该路径经过的数字总和最大. 对于给定的由n行数字组成的数字三角形,计算从三角形的顶至底的路径 ...

  6. 611. 有效三角形的个数

    611. 有效三角形的个数 给定一个包含非负整数的数组,你的任务是统计其中可以组成三角形三条边的三元组个数. 示例 1: 输入: [2,2,3,4] 输出: 3 解释: 有效的组合是: 2,3,4 ( ...

  7. 计算不定方程解的个数的方法汇总

    写在前面 最近做了一些题目, 才发现当初学习组合数学时候还是做的题太少, 很多东西只是知道其概念如何, 真正上手题目还是get不到精髓. 这次来总结一下计算不定方程解的个数的一些方法, 加深一下对这块 ...

  8. 判断三个数是否能构成三角形_【内含干货】611. 有效三角形的个数

    点击蓝色"力扣加加"关注我哟 加个"星标",带你揭开算法的神秘面纱! ❝ 这是力扣加加第「9」篇原创文章 ❞ 题目地址(611. 有效三角形的个数) https ...

  9. python编程:判断输入的边长能否构成三角形 如果能则计算出三角形的周长和面积

    判断输入的边长能否构成三角形 如果能则计算出三角形的周长和面积 def main():a = float(input('a = '))b = float(input('b = '))c = float ...

最新文章

  1. python试卷(有答案版本、个人答案不是官方答案)_python试卷(有答案版本,个人答案不是官方答案).doc...
  2. 【Android 高性能音频】AAudio 音频流 缓冲区 简介 ( AAudio 音频流内部缓冲区 | 缓冲区帧容量 | 缓冲区帧大小 | 音频数据读写缓冲区 )
  3. 自定义的Sort对象
  4. 最小二乘、最大似然和最大后验的简单总结
  5. Python+Opencv实现实时的条形码检测
  6. mysql多表联合删除
  7. esplise自定义快捷代码补全_【Eclipse】_Eclipse自动补全增强方法 常用快捷键
  8. JEECG - 基于代码生成器的J2EE智能开发框架 续一: JEECG框架搭建步骤 [更新版]
  9. php 连接主从redis,PHP7对Redis的扩展及Redis主从搭建
  10. 从文件夹中批量抽取(复制or剪切)文件 批处理脚本
  11. MS-SQL中创建索引
  12. JavaWeb进度报告1
  13. limbo pc for android,「Limbo PC emulator」可以让安卓手机安装 Windows 10 了
  14. java map 容器_java容器-map的常用实现及原理
  15. 彼得·林奇的 PEG 估值策略
  16. Android学习教程之idea和海马玩模拟器搭建调试
  17. 你有没有一个御用冷笑话 说来听听~
  18. ANSYS ICEM CFD三维结构网格生成实例——汽车外流
  19. 汽车行业的互联网生意经
  20. linux ping命令报name or service not known错误解决方案

热门文章

  1. 《经济学人》最新封面评下一个前沿技术:脑机接口正等待远见者的到来
  2. POSIX 线程具体解释(3-相互排斥量:固定加锁层次/“试加锁-回退”)
  3. java及大数据程微信交流群
  4. 如何禁止input框输入特殊字符
  5. html制作满天星,HTML5练习(1)制作满天星
  6. navcat导入mysql bak_navcat excel数据导入mysql的方法
  7. 关于Home Lab的搭建——硬件选择篇(迷你主机)(一)
  8. Linux系统ifconfig命令没有显示eth0,只有lo,且ip显示为127.0.0.1
  9. NLTK 学习笔记(1)
  10. 2018ccpc-wannafly winter camp div2.Day1