• 方程式


    方程式

    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;
    }
    

      

  • 相关阅读:
    django学习笔记1
    排序多重排序
    06计算列
    填充日期序列
    行,列单元格
    读取excel文件
    监控文本
    天干地支纪年法
    Mysql基础
    JDBC基础
  • 原文地址:https://www.cnblogs.com/locojyw/p/3705010.html
Copyright © 2020-2023  润新知