题目
思路:
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 <