ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

蓝桥杯12-直线

2022-02-04 00:01:51  阅读:82  来源: 互联网

标签:y2 直线 12 int x2 蓝桥 include y1 x1


在这里插入图片描述
思路:
第一点要想到y=kx+b
两条直线的k和b不相同那么这两条直线不相同
直接暴力4重循环
要把斜率不存在的直线特判出来,最后结果加上就好了

#include<iostream>
#include<algorithm>
#include <cmath>
#include <map>
using namespace std;

struct L{
	double k,b;
	
	int operator < (const L& ll) const{
		if(k != ll.k) return k < ll.k;
		return b<ll.b;
	}
}l[1000010];

int main(){
	int n = 0;

	for(int x1 = 0;x1<20;x1++){
		for(int y1 = 0;y1<21;y1++){
			for(int x2 = 0;x2<20;x2++){
				for(int y2 = 0;y2<21;y2++){
					if(x1 != x2){
						double k = (y1-y2)*1.0 / (x1-x2);
						double b = y1-k*x1;
						l[n++] = {k,b};
					}
				}
			}
		}
	}
	sort(l,l+n);
	long long ans = 1;
	for(int i = 1;i<n;i++){
		if(fabs(l[i].k - l[i-1].k) > 1e-8 || fabs(l[i].b - l[i-1].b) > 1e-8) ans++;
	}
	cout << ans + 20 << endl;
	
	return 0;
}
//40257

标签:y2,直线,12,int,x2,蓝桥,include,y1,x1
来源: https://blog.csdn.net/he_qingjun/article/details/122780174

专注分享技术,共同学习,共同进步。侵权联系[admin#icode9.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有