上海诚杰华建设工程咨询有限公司网站,室内设计工作前景,apache创建WordPress,网站建站合同分析#xff1a; 题目中的格式有点像韦达定理#xff0c;就是对于一元二次方程ax^2 bx c 0有 所以可以推出要找的就是两个点#xff0c;可以直接二分查找存不存在#xff0c;这题有很多边界问题#xff0c;有b^2 - 4ac小于0或者等于0#xff0c;或者求出来的根在数组中… 分析 题目中的格式有点像韦达定理就是对于一元二次方程ax^2 bx c 0有 所以可以推出要找的就是两个点可以直接二分查找存不存在这题有很多边界问题有b^2 - 4ac小于0或者等于0或者求出来的根在数组中找不到都要处理。
代码
#include bits/stdc.husing namespace std;int main() {ios::sync_with_stdio(false);cin.tie(nullptr);int T;cin T;while(T --) {int n;cin n;maplong long, long long cnt;for(int i 0; i n; i ) {long long x;cin x;cnt[x] ;}int q;cin q;while(q --) {long long x, y;cin x y;long long d x * x - 4 * y;if(d 0) {cout 0 ;continue;}long long x1 (x - sqrt(d)) / 2;long long x2 (x sqrt(d)) / 2;if(x1 x2 ! x || x1 * x2 ! y) {cout 0 ;continue;}if(x1 x2) cout cnt[x1] * (cnt[x1] - 1) / 2 ;else cout cnt[x1] * cnt[x2] ;}cout \n;}
}