zoukankan      html  css  js  c++  java
  • 方程式

    方程式

    Time Limit:   1000MS       Memory Limit:   65535KB
    Submissions:   2312       Accepted:   580
    Description

    Consider equations having the following form: a*x1*x1 + b*x2*x2 + c*x3*x3 + d*x4*x4 = 0 a, b, c, d are integers from the interval [-50,50] and any of them cannot be 0. It is consider a solution a system ( x1,x2,x3,x4 ) that verifies the equation, xi is an integer from [-100,100] and xi != 0, any i ∈{1,2,3,4}. Determine how many solutions satisfy the given equation.

    Input

    The input consists of several test cases. Each test case consists of a single line containing the 4 coefficients a, b, c, d, separated by one or more blanks.

    Output

    or each test case, output a single line containing the number of the solutions.

    Sample Input

    1 2 3 -4
    1 1 1 1
    

    Sample Output

    39088
    0

    #include<stdio.h>
    #include<cstring>
    //using namespace std;
    #define MAX 1000000
    int hash[MAX*2+1];
    int main()
    {
     int i,j,sum;
     int a,b,c,d,ans;
     while(scanf("%d %d %d %d",&a,&b,&c,&d)!=EOF)
     {
      ////若memset(hash,0,sizeof(hash));放此处会超时
      if((a<0&&b<0&&c<0&&d<0)||(a>0&&b>0&&c>0&&d>0))
      {
       printf("0
    ");
       continue;
      }
       memset(hash,0,sizeof(hash));/////////////位置决定是否超时
      for(i=1;i<=100;i++)
      {   
       for(j=1;j<=100;j++)
       {
        sum=a*i*i+b*j*j;
        hash[sum+MAX]++;
       }  
      } 
      ans=0;
      for(i=1;i<=100;i++)
      {
       
       for(j=1;j<=100;j++)
       {
        sum=-(c*i*i+d*j*j);
        ans+=hash[sum+MAX];
       }
      }
      ans*=16;
      printf("%d
    ",ans); 
     }
     return 0;
    }
    

      

  • 相关阅读:
    企业要主动淘汰五种人
    人力管理的核心:选、用、育、留
    张瑞敏:正确路线确定后,干部就是决定因素
    西点军校如何培养学员
    董事长如何找合适的搭档
    企业家何时应该放权
    会计基础视频
    同样劳动,为何结果不同?
    什么是真正的工作到位
    中国的人口和经济周期
  • 原文地址:https://www.cnblogs.com/locojyw/p/3705010.html
Copyright © 2011-2022 走看看