求助SP14542
  • 板块灌水区
  • 楼主S__X
  • 当前回复0
  • 已保存回复0
  • 发布时间2022/8/27 16:07
  • 上次更新2023/10/27 13:27:11
查看原帖
求助SP14542
310466
S__X楼主2022/8/27 16:07

题目

时间复杂度要求是 O(n)O(n)

我只有 O(n2)O(n^2)

代码如下:

#include<bits/stdc++.h>
typedef unsigned long long ll;
using namespace std;
ll t,n,m,ans;
int main(){
    scanf("%lld",&t);
    while(t--){
        scanf("%lld%lld",&n,&m);
        ans=0;
        for(ll a=n;a<=m;a++)
            for(ll b=a+1;b<=m;b++){
                ll c=ll(sqrt(a*a+b*b));
                if(c*c==a*a+b*b && c<=m ) {
                    ans++;
                }
            }
        printf("%lld\n",ans);
    }
    return 0;
}
2022/8/27 16:07
加载中...