TLE求助
查看原帖
TLE求助
493206
MasCotangent楼主2023/1/6 15:07

rt,虽然样例能过,但此题数据过强,以至于蒟蒻的代码全部TLE,吸氧都救不回来。出题人好狠
希望有大佬帮忙提供算法或优化思路

#include<bits/stdc++.h>
using namespace std;
long long n,k,a[100001][2],ans;
long long pj;
int main(){
    scanf("%i%i",&n,&k);
    for(int i=1;i<=n;i++){
        scanf("%i",&a[i][1]);//输入数
        a[i][0]=log10(a[i][1]);//记录数字的位数,方便“拼接”
        //另外,有大佬知道log10的时间复杂度吗
        a[i][1]%=k;
        a[i][0]%=k;//考虑到余数的特性,取模
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            if(j==i){
                continue;
            }
            pj=a[i][1]*a[i][0]+a[j][1];
            if(pj%k==0){
                ans++;
            }
        }
    }//二重循环判断,应该是这里超时了
    printf("%i",ans);
    return 0;
}

码风稚嫩,还请谅解

2023/1/6 15:07
加载中...