zoukankan      html  css  js  c++  java
  • Croc Champ 2013 Round 2 (Div. 2 Edition) E. Cube Problem 解题报告

    很郁闷的一题,完全在考数学的不等式

    题目简化后的公式为 a^3+b^3+c^3+n=(a+b+c)^3,对其进行化简,

    最后的等式为 (a+b)(a+c)(b+c)=n/3

    假设 a<=b<=c,(注意求得a,b,c后对其进行排列,原本的a,b,c是没有顺序的)

    则 (a+b)<=(a+c)<=(b+c)

    三个数相乘必然有个数小于等于 开n/3的立方,有一个数大于等于开n/3的立方

    如  xy=n ,则 x <=  √n  ,y>= √n

    设 i=(a+b) , j = (a+c), k =(b+c),则 i<=j<=k

    令 n=n/3

    枚举 i=2....sqrt(n)

      则 j*k= n/i (注意要保证n/i是整数) (注意 j >= i)

      令m=n/i

      两个数相乘必然有个数小于等于 √m,有个数大于等于 √m

      则枚举 j = i..sqrt(m) (如果直接将j从i开始枚举会超时)

        则 k= m/j (同样要保证m/j是整数)

          a+b = i

          a+c=j

          b+c=k

        则 a = (i+j-k)/2, b=(i+k-j)/2 ,c=(j+k-i)/2   由于 a>0 注意 i+j > k  同时 (i+j-k)/2,(i+k-j)/2,(j+k-i)/2都要是整数

         a,b,c求出后对其排列计算其数目就行

    #include <iostream>
    #include <vector>
    #include <cmath>
    #include <algorithm>
    
    using namespace std;
    
    typedef long long LL;
    
    int main(){
        LL n;
        cin >> n;
        if( n%3 != 0){
            cout<<0<<endl;
            return 0;
        }
        n /= 3;
        int ans = 0;
        for(LL i = 2; i*i*i <= n ; i ++ ){
            if( n%i ) continue;
            LL m = n/i;
            for(LL j = max(i,(LL)(-i+sqrt(i*i+4*m))/2); j*j  <= m; j ++){
                if( m%j ) continue;
                LL k=m/j;
                if((i+j) > k){
                    if(i==j && j==k) ans +=1;
                    else{
                        if( (i+j-k)%2 || (i+k-j)%2 || (j+k-i)%2 ) continue;
                        else{
                            int a = (i+j-k)/2,b=(i+k-j)/2,c=(j+k-i)/2;
                            if(a == b && b == c) ans+=1;
                            if(a < b && b < c) ans+=6;
                            if( a== b && b < c) ans +=3;
                            if( a < b && b ==c ) ans +=3;
                        }
                    }
                }
            }
        }
        cout<<ans<<endl;
        return 0;
    }
    

      

        

  • 相关阅读:
    php环境配置中各个模块在网站建设中的功能
    PHP+Apache+MySQL+phpMyAdmin在win7系统下的环境配置
    August 17th 2017 Week 33rd Thursday
    August 16th 2017 Week 33rd Wednesday
    August 15th 2017 Week 33rd Tuesday
    August 14th 2017 Week 33rd Monday
    August 13th 2017 Week 33rd Sunday
    August 12th 2017 Week 32nd Saturday
    August 11th 2017 Week 32nd Friday
    August 10th 2017 Week 32nd Thursday
  • 原文地址:https://www.cnblogs.com/xiongqiangcs/p/3040558.html
Copyright © 2011-2022 走看看