蓝桥杯--直线(map,pair的使用)

二话不说先上题目

在平面直角坐标系中,两点可以确定一条直线。如果有多点在一条直线上, 那么这些点中任意两点确定的直线是同一条。

给定平面上 2 × 3 个整点{(x, y)|0 ≤ x < 2, 0 ≤ y < 3, x ∈ Z, y ∈ Z}(x,y)∣0≤x<2,0≤y<3,x∈Z,y∈Z,即横坐标 是 00 到 11 (包含 0 和 1) 之间的整数、纵坐标是 0 到 2 (包含 0 和 2) 之间的整数 的点。这些点一共确定了 11 条不同的直线。

给定平面上20×21 个整点 {(x, y)|0 ≤ x < 20, 0 ≤ y < 21, x ∈ Z, y ∈ Z}(x,y)∣0≤x<20,0≤y<21,x∈Z,y∈Z,即横 坐标是 0到 19 (包含 0 和 1919) 之间的整数、纵坐标是 0 到 20 (包含 0 和 20) 之 间的整数的点。

请问这些点一共确定了多少条不同的直线。

此题采用枚举的思想,一个集的枚举是列出某些有穷序列集的所有成员的程序,或者是一种特定类型对象的计数。做此类题目时,切入点是枚举什么,不同的题目有不同的情况,找到枚举的对象也就迈出了第一步。

对此题进行分析,在一个区域内有n个点连线,问线的条数,找到线与线的不同(特征)!即是斜率与截距(k,b),而其限制情况就是这些点所连成的。故我们只需在枚举时注意是否为相同线。

接下来的便是重点:

我们可以把map看作映射(就像数学中的函数,只能一对一,不能一对多,扯远了😁😁😁

其形式为map<typename1, typename2> mp;typename1是的类型,typename2是的类型。不过要注意字符串数组要用string

我们可以通过数组的形式进行其值,

再使用pair将k,b连成一组数据(结构体),统一对其进行标记。

代码:

一篇刷题笔记,希望自己好好努力。

程序小白,翻车勿怪。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值