本文主要是介绍(坑点!!!)给定n条过原点的直线和m条抛物线(y=ax^2+bx+c,a>0),对于每一条抛物线,是否存在一条直线与它没有交点,若有,输出直线斜率,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目
思路:
1、区间端点可能是小数的时候,不能直接利用加减1将 < 转化为 <=,例如,x < 1.5 不等价于 x <= 2.5
2、该题中k在(b - sqrt(4 * a * c), b + sqrt(4 * a * c) 中,注意是开区间,那么可以将左端点向上取整,右端点向下取整,即sqrt(4 * a * c)向下取整,计算出左右端点l,r,那么k在[l, r] 中(闭区间),如果4*a*c是平方数,那么l--, r++
3、最好把可能为小数的部分连同它的系数看成整体,若把4开根,那么sqrt(4 * a * c) == 2 * sqrt(a * c), 那么得再判断sqrt(a * c) 是不是 0.5结尾的,若是,那么2 * sqrt(a * c)还是整数
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pb push_back
#define fi first
#define se second
#define lson p << 1
#define rson p <
这篇关于(坑点!!!)给定n条过原点的直线和m条抛物线(y=ax^2+bx+c,a>0),对于每一条抛物线,是否存在一条直线与它没有交点,若有,输出直线斜率的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!