Ph0tograph 2016-02-21 04:43 采纳率: 0%
浏览 1465

ACM题目 求思路 枚举超时·

图片说明

  • 写回答

1条回答 默认 最新

  • u52983610 2016-02-28 12:44
    关注
     #include<iostream>
    using namespace std;
    long pow(int a,int b){
        if(b==0) return 1;
        return a*pow(a,b-1);
    }
    int main(){
        long x,y;
        int countinput=0;
        while(cin>>x>>y){
    
        countinput++;
        int count=0;
        int countsame=0;
        for(long i=x;i<=y;i++){
            int m1=3;
            int result1=pow(i,m1)-m1;
            if(result1>10*y){
                break;
            }
            for(long j=i;j<=y;j++){
                if(i==1&&j==1)continue;
                int m=3;
                int result=pow(i,m)+pow(j,m)-m;
                if(result>10*y){
                    break;
                }
                if(result>=10*x&&result%10==0){
                        count++;
                        if(i==j){
                            countsame++;
                        }
                }
            }
        }
        cout<<"Case "<<countinput<<": "<<2*count-countsame<<endl;
            }
    } 
    
    评论

报告相同问题?