Description

Consider equations having the following form:

a*x1^2+b*x2^2+c*x3^2+d*x4^2=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.

End of file.
 

Output

For 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
 
哈希只会一丢丢。就不写详解了。自己体会,O(∩_∩)O哈哈~
 
对于最后的结果要乘16,是因为,计算出来的结果可正可负,一共有 2^4 种情况
 
using namespace std;
const int maxn = 2000005;
const int h = 1000000;
int hash1[maxn];
int a, b, c, d, sum, k; //主思路: 分两段计算 最后乘16( 2^4 )
int main()
{
while(~scanf("%d %d %d %d",&a,&b, &c, &d) )
{
if( a>0 && b>0 && c>0 && d>0 ||
a<0 && b<0 && c<0 && d<0 )
{
cout << "0" << endl ;
continue ;
}
memset(hash1,0,sizeof(hash1));
sum = 0 ;
for(int i=1; i<=100; i++)
for(int j=1; j<=100; j++)
hash1[ a * i * i + b * j * j + h ] ++ ;
for(int i=1; i<=100; i++)
for(int j=1; j<=100; j++)
sum += hash1[ h - c * i * i - d * j * j ] ;
cout << sum*16 << endl ;
} return 0;
}

ACM题目————Equations的更多相关文章

  1. ACM题目————中缀表达式转后缀

    题目描述 我们熟悉的表达式如a+b.a+b*(c+d)等都属于中缀表达式.中缀表达式就是(对于双目运算符来说)操作符在两个操作数中间:num1 operand num2.同理,后缀表达式就是操作符在两 ...

  2. HDU ACM 题目分类

    模拟题, 枚举1002 1004 1013 1015 1017 1020 1022 1029 1031 1033 1034 1035 1036 1037 1039 1042 1047 1048 104 ...

  3. ACM题目推荐(刘汝佳书上出现的一些题目)[非原创]

    原地址:http://blog.csdn.net/hncqp/article/details/1758337 推荐一些题目,希望对参与ICPC竞赛的同学有所帮助. POJ上一些题目在http://16 ...

  4. 有一种acm题目叫做,奇葩!

    本文全然没有技术含量,纯粹是娱乐. 我事实上想写点东西.可是近期好像做计算几何做得太多了,一种想说说不出东西的感觉,唯有写一下一些奇葩的题目了. HDU3337:Guess the number pi ...

  5. ACM题目————STL练习之求次数

    题目地址:http://acm.nyist.net/JudgeOnline/problem.php?pid=1112 描述 题意很简单,给一个数n 以及一个字符串str,区间[i,i+n-1] 为一个 ...

  6. ACM题目————zoj问题

    题目1006:ZOJ问题 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:20322 解决:3560 题目描述: 对给定的字符串(只包含'z','o','j'三种字符),判断他是否能AC. ...

  7. ACM题目————又见拦截导弹

    描述 大家对拦截导弹那个题目应该比较熟悉了,我再叙述一下题意:某国为了防御敌国的导弹袭击,新研制出来一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:它的第一发炮弹能够到达任意的高度,但是以后每一发炮 ...

  8. ACM题目————还是畅通工程

    Submit Status Description 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路 ...

  9. ACM题目————小A的计算器

    Description 以往的操作系统内部的数据表示都是二进制方式,小A新写了一个操作系统,系统内部的数据表示为26进制,其中0-25分别由a-z表示.  现在小A要在这个操作系统上实现一个计算器,这 ...

随机推荐

  1. Lintcode: Flip Bits

    Determine the number of bits required to flip if you want to convert integer n to integer m. Have yo ...

  2. Eclipse 文本显示行号

  3. .NET: 防止多个应用程序同时开

    用到了Mutex这个类,直接看代码~ using System; using System.Collections.Generic; using System.Linq; using System.W ...

  4. @Responsebody与@RequestBody

    前台发送请求后台用什么接收-->@RequsetMapping 何时使用@ResponseBody-->一般在异步获取数据时使用,后台传的数据切成ison传给前台 @Responsebod ...

  5. bzoj4448 [Scoi2015]情报传递

    第一问不解释,对于第二问的处理,可以使用cdq分治,假设分治的询问区间是[L,R],那么我们对于标号在[L,mid]的修改操作赋予一个权值,因为在当前[L,R]中[L,mid]的修改操作只会对[mid ...

  6. 解决ScrollView与ListView事件冲突

    1,在最近做项目的时候使用ScrollView嵌套ListView的时候发现ListView的滑动效果失效,简单的网上搜索了一下,也就有了下面的解决方法,在ListView中设置事件的监听listvi ...

  7. paper 58 :机器视觉学习笔记(1)——OpenCV配置

    开始学习opencv! 1.什么是OpenCV OpenCV的全称是:Open Source Computer Vision Library.OpenCV是一个基于(开源)发行的跨平台计算机视觉库,可 ...

  8. [tp3.2.1]sql查询语句(一)

    基本查询方式    字符串条件查询,    索引数组条件查询    对象条件查询    SQL语句大小写是一样的,但是,执行的时候有一个小写到大写的转换,所以最好写大写 $condition=new ...

  9. 有关OpenGL着色语言(一)

    刚接触OpenGL着色语言...,不定期增加内容 1.OpenGL着色语言(GLSL)是什么? 用于OpenGL的面向过程的高级着色语言,是近年来图形编程领域中出现的最重要的新型开发技术,使用Open ...

  10. android studio 自用快捷键方案

    自用改建方案,一切为了更加顺手 以windows平台为例,为了清晰明了,字母键盘都以大写注明 代码篇 格式化代码            ctl+alt+L 快速修复               alt ...