原来TLE的点全都变成WA了,50分求助!!!
查看原帖
原来TLE的点全都变成WA了,50分求助!!!
373226
justinjia楼主2021/1/12 08:52
R44860496 记录详情\color{white}{\colorbox{black}{R44860496 记录详情}} 测试点信息\color{lightblue}{\text{测试点信息}} \#1&\#2&\#3&\#4&\#5&\#6&\#7&\#8&\#9&\#10\\ \colorbox{green}{\color{white}{AC}}&\colorbox{red}{\color{white}{WA}}&\colorbox{green}{\color{white}{AC}}&\colorbox{green}{\color{white}{AC}}&\colorbox{green}{\color{white}{AC}}&\colorbox{green}{\color{white}{AC}}&\colorbox{red}{\color{white}{WA}}&\colorbox{red}{\color{white}{WA}}&\colorbox{red}{\color{white}{WA}}&\colorbox{red}{\color{white}{WA}} \end{matrix}$$

\color{lightblue}{\text{源代码}}

```cpp #include"stdio.h" #include"algorithm" #include"math.h" using namespace std; int factor[20000000/*防止MLE*/];//存储因数 void getfac(int a){ const int sq=sqrt(a); int k=0; for(int i=1;i<=sqrt(a);i++) if(a%i==0){ factor[++k]=i; if(i!=a/i) factor[++k]=a/i; } factor[0]=k;//factor[0]存储因数个数 } int gcd(int a,int b){ if(!b) return a; return gcd(b,a%b); } int lcm(int a,int b){ return a*b/gcd(a,b); } int main(void){ int n,a0,a1,b0,b1; scanf("%d",&n); for(int i=0;i<n;i++){ int ans=0; scanf("%d%d%d%d",&a0,&a1,&b0,&b1); getfac(b1); for(int j=1;j<=factor[0];j++)//遍历b1的因数 if(gcd(min(factor[j],a0),max(factor[j],a0))==a1&&lcm(min(factor[j],b0),max(factor[j],b0))==b1) ans++; printf("%d\n",ans); } return 0; } ```
2021/1/12 08:52
加载中...