3 条题解
-
2
不可能包AC方法1:
#include<bits/stdc++.h> using namespace std; #define ll long long ll k,n,e,d; int main() { cin >> k; while (k--) { cin >> n >> e >> d; ll m=n+2-e*d,de=m*m-4*n; if (de<0) { cout << "NO" << endl; continue; } long long sqrt_de = sqrt(de); if (sqrt_de * sqrt_de != de) { cout << "NO" << endl; continue; } ll p=(m-sqrt_de)/2,q=(m+sqrt_de)/2; if (p>0&&q>0&&p*q==n) { cout << p << " " << q << endl; } else { cout << "NO" << endl; } } //彭子洋原创^_^; return 0; }方法2:
#include<bits/stdc++.h> using namespace std; #define ll long long ll k,n,d,e,m,p,q; int main(){ cin >> k; while(k--){ cin >> n >> d >> e; m=n+2-e*d; ll lf=1,rt=m/2; bool f=0; while(lf<=rt){ p=(lf+rt)/2; q=m-p; if(p*q>n){ rt=p-1; } else if(p*q<n) { lf=p+1; } else { cout << p << " " << q << "\n"; f=1; break; } } if(!(f)) cout << "NO\n"; } return 0; } //
信息
- ID
- 2917
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 8
- 标签
- 递交数
- 193
- 已通过
- 48
- 上传者