lanqiao 1449 直线

This commit is contained in:
2025-04-02 20:43:57 +08:00
parent afc7f65471
commit 641293f835

23
12lanqiao/test3.cpp Normal file
View File

@@ -0,0 +1,23 @@
// lanqiao 1449 直线
#include<bits/stdc++.h>
using namespace std;
int main(){
set<pair<double, double>> s; // 使用set对{k, b}数据对去重
// 枚举第一个坐标点
for(int x1 = 0; x1 < 20; x1++){
for(int y1 = 0; y1 <21; y1++){
// 枚举第二个坐标点
for(int x2 = x1+1; x2 < 20; x2++){
for(int y2 = 0; y2 < 21; y2++){
double k = (double)(y2-y1)/(x2-x1);
// double b = (double)(y1 - ((y2-y1)/(x2-x1)) * x1);
// 上面这个式子先算除法再算乘法,存在精度误差,最好先通分一下
double b = (double)(x2*y1 - x1*y2)/(x2-x1);
s.insert({k, b});
}
}
}
}
cout << s.size() + 20 << endl; // +20代表与x轴垂直的直线
return 0;
}