纯暴力代码☹

P1618 三连击(升级版)

bohemiao @ 2023-08-22 11:05:15

#include<bits/stdc++.h>
using namespace std;
int a,b,c,n;
int main(){
    cin>>a>>b>>c;
    for(int d=1;d<=9;d++){
        for(int e=1;e<=9;e++){
            for(int f=1;f<=9;f++){
                for(int g=1;g<=9;g++){
                    for(int h=1;h<=9;h++){
                        for(int i=1;i<=9;i++){
                            for(int j=1;j<=9;j++){
                                for(int k=1;k<=9;k++){
                                    for(int l=1;l<=9;l++){
                                        int a1=d*100+e*10+f,b1=g*100+h*10+i,c1=j*100+k*10+l;
                                        if(b1/a1==b&&c1/a1==c){
                                            n=1;
                                            printf("%d %d %d\n",a1,b1,c1);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    if(!n) printf("No!!!");
    return 0;
}

为什么TLE 0分

时间复杂度 O(n^9)


by 梦应归于何处 @ 2023-08-22 11:07:25

@123cat 这肯定TLE啊


by smqa @ 2023-08-22 11:10:24

9^9=387,420,489

要是不炸可以申请图灵奖了


by Infinity_Fantasy @ 2023-08-22 11:11:39

枚举第一个数,根据比例算第二和第三个


by bohemiao @ 2023-08-22 11:13:16

阿巴阿巴


by 1q2zb @ 2023-08-22 11:13:34

你这可以写一个三角形了(xswl


by bohemiao @ 2023-08-22 11:14:42

@1q2zb e……


by happy_guest @ 2023-08-22 11:20:02

@123cat 加剪枝

#include<bits/stdc++.h>
using namespace std;
int main(){
    double a,b,c;
    cin>>a>>b>>c;
    bool flag=1;
    for(int z=1;z<=9;z++){
        for(int y=1;y<=9;y++){
            if(z==y)
                continue;
            for(int x=1;x<=9;x++){
                if(y==x||z==x)
                    continue;
                for(int w=1;w<=9;w++){
                    if(x==w||y==w||z==w)
                        continue;
                    for(int v=1;v<=9;v++){
                        if(w==v||x==v||y==v||z==v)
                            continue;
                        for(int u=1;u<=9;u++){
                            if(v==u||w==u||x==u||y==u||z==u)
                                continue;
                            for(int t=1;t<=9;t++){
                                if(u==t||v==t||w==t||x==t||y==t||z==t)
                                    continue;
                                for(int s=1;s<=9;s++){
                                    if(t==s||u==s||v==s||w==s||x==s||y==s||z==s)
                                        continue;
                                    for(int r=1;r<=9;r++){
                                        if(s==r||t==r||u==r||v==r||w==r||x==r||y==r||z==r)
                                            continue;
                                        int num1=z*100+y*10+x*1,num2=w*100+v*10+u*1,num3=t*100+s*10+r*1;
                                        if(num1*1.0/num2==a/b&&num2*1.0/num3==b/c&&num1*1.0/num3==a/c){
                                            cout<<num1<<" "<<num2<<" "<<num3<<endl;
                                            flag=0;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    if(flag)
        cout<<"No!!!";
    return 0;
}

by STDLIRUIZHE @ 2023-08-22 11:23:36

@dengyongjia133 你这个有一点......而且,不是只用枚举一个数吗???


by happy_guest @ 2023-08-22 11:24:41

@LIRUIZHE137145 这是我很久以前的code


by bohemiao @ 2023-08-22 13:17:01

@dengyongjia133 《满级暴力剪枝》


| 下一页