社区讨论
10pts WA & TLE 求调
P9750[CSP-J 2023] 一元二次方程参与者 2已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @m05de05r
- 此快照首次捕获于
- 2024/08/22 22:20 2 年前
- 此快照最后确认于
- 2025/11/04 22:42 4 个月前
大样例没过
CPP#include<bits/stdc++.h>
#define pb push_back
#define ll long long
#define endl '\n'
#define itn int
#define pi pair<int,int>
#define max(x,y) ((x)>(y)?(x):(y))
#define min(x,y) ((x)<(y)?(x):(y))
using namespace std;
const int MOD1=1e9+7;
const int MOD2=998244353;
const int N=1e5+5;
int T,M,a,b,c;
void frac(int p,int q){
p=abs(p);
q=abs(q);
int gcdd=__gcd(p,q);
p/=gcdd;
q/=gcdd;
if(q==1)cout<<p;
else if(p==q)cout<<1;
else cout<<p<<'/'<<q;
}
inline void Solve(){
cin>>T>>M;
while(T--){
cin>>a>>b>>c;
int delta=b*b-4*a*c;
if(delta<0){
cout<<"NO"<<endl;
}
else{
double sqd=sqrt(delta);
if(delta==0){
int p=-b;
int q=2*a;
double cf=p*1.0/q;
//cout<<p<<' '<<q<<' '<<cf<<endl;
if(cf==int(cf)){
cout<<int(cf)<<endl;
}
else{
if(p*q<0)
cout<<'-';
frac(p,q);
cout<<endl;
}
}
else{
if(int(sqd)==sqd){
int p=sqd-b;
int q=2*a;
double cf=p*1.0/q;
if(cf==int(cf)){
cout<<int(cf)<<endl;
}
else{
if(p*q<0)
cout<<'-';
frac(p,q);
cout<<endl;
}
}
else{
int _q1=-b;
int _q2,r;
for(_q2=sqrt(delta);_q2>=1;_q2--){
if(delta%(_q2*_q2)==0){
r=delta/_q2/_q2;
break;
}
}
if(_q1!=0){
int q11=_q1;
int q12=2*a;
if(q11*q12<0)
cout<<'-';
frac(q11,q12);
cout<<'+';
}
int q21=_q2;
int q22=2*a;
if(q21==q22){
cout<<"sqrt("<<r<<")\n";
}
else{
double cf=q21*1.0/q22;
if(int(cf)==cf){
if(abs(int(cf))!=1)
cout<<abs((int)cf)<<"*sqrt("<<r<<")\n";
else
cout<<"sqrt("<<r<<")\n";
}
else{
double _cf=q22*1.0/q21;
if(int(_cf)==_cf){
cout<<"sqrt("<<r<<")";
if(abs((int)_cf)!=1)
cout<<abs((int)cf)<<endl;
}
else{
int C,D;
for(D=2;;D++){
double _C=_q2*D*1.0/2/a;
if(int(_C)==_C and __gcd(int(_C),D)==1){
C=_C;
break;
}
}
cout<<C<<"*sqrt("<<r<<")/"<<D<<endl;
}
}
}
}
}
}
}
}
int main()
{
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
//freopen("uqe2.in","r",stdin);
//freopen("uqe2.out","w",stdout);
int T=1;
//cin>>T;
while(T--)
Solve();
return 0;
}
回复
共 3 条回复,欢迎继续交流。
正在加载回复...