`

【超级hash大法】HDU 1496 Equations

阅读更多
http://acm.hdu.edu.cn/showproblem.php?pid=1496


题意:求有多少个解!!

Problem 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


#include <iostream>
#include <fstream>
#include <algorithm>
#include <string>
#include <set>
//#include <map>
#include <queue>
#include <utility>
#include <stack>
#include <list>
#include <vector>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <ctime>
#include <ctype.h>
using namespace std;

int hash[3000005];

int main()
{
    int a, b, c, d, x1, x2, x3, x4, res;
    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)    //都是同号必定无解,木有这个超时
		{
			puts ("0");
			continue;
		}
        memset (hash, 0, sizeof(hash));
        res = 0;
        for (x1 = 1; x1 < 101; x1++)    //hash令四重循环变成二重,复杂度大大减少
			for (x2 = 1; x2 < 101; x2++)
				hash[a*x1*x1+b*x2*x2+2000000]++;
		for (x3 = 1; x3 < 101; x3++)
			for (x4 = 1; x4 < 101; x4++)
					res += hash[(0-(c*x3*x3+d*x4*x4))+2000000];
		res *= 16;
   //因为正负号不同不影响x平方的效果,所以直接枚举正数,最后乘以2的4次方,表示正负不同的组合
        printf ("%d\n", res);
    }
    return 0;
}
3
4
分享到:
评论
2 楼 基德KID.1412 2011-08-11  
哈哈!!+2 
1 楼 sgeteternal 2011-08-10  
哈哈!!1

相关推荐

    HDUACM2010版_14)Hash及应用

    HDUACM2010版_14)Hash及应用HDUACM2010版_14)Hash及应用HDUACM2010版_14)Hash及应用HDUACM2010版_14)Hash及应用

    uthash开源的hash函数实现

    UTHASH 提供了一个简洁的解决方案,通过包含 "uthash.h",你可以为自定义的结构体添加哈希功能,这极大地简化了工作流程。 下面是一些关于 UTHASH 的关键知识点: 1. **哈希函数**:哈希函数是 UTHASH 的核心,它...

    HASHIN.rar_ABAQUS_Hashin失效准则 abaqus_abaqus hashin_abaqus 三维Hashi

    标题中的"HASHIN.rar_ABAQUS_Hashin失效准则 abaqus_abaqus hashin_abaqus 三维Hashi"表明这是一个关于ABAQUS软件中应用Hashin失效准则进行三维分析的示例或教程。ABAQUS是一款广泛应用的有限元分析软件,尤其在结构...

    3d.zip_3维hashin准则_Hashin 3D_hashin_失效准则_层合板 hashin

    在复合材料领域,Hashin失效准则是一个非常重要的理论模型,尤其在分析三维层合板的强度和稳定性时。Hashin准则由Stanley Hashin在20世纪60年代提出,用于预测多向复合材料的破坏行为。这个准则考虑了内部微裂纹的...

    hashin-strain-3d_hashin_三维hashin_三维hashin失效_失效准则_3D—Hashin_

    **三维Hashin失效准则详解** 在复合材料领域,失效分析是至关重要的,它关系到材料的性能预测和结构安全。Hashin失效准则是一种广泛应用的多向复合材料失效理论,由Shlomo Hashin于1962年提出,主要用于评估多向受...

    高运算性能,低碰撞率的hash算法MurmurHash算法.zip

    官方网站:https://github.com/aappleby/smhasherMurmurHash算法,自称超级快的hash算法,是FNV的4-5倍。官方数据如下: OneAtATime – 354.163715 mb/sec FNV – 443.668038 mb/sec SuperFastHash – 985.335173 ...

    UMAT_Hashin3D_hashin

    标题 "UMAT_Hashin3D_hashin" 指涉的是一个专门针对复合材料损伤分析的三维子程序,该程序基于Hashin破坏准则。在有限元分析(FEA)中,用户自定义材料(User-Defined Material,UMAT)是实现特定材料行为建模的一种...

    Hash值查看以及修改软件(Hash_1.0.4_0523.exe以及HashModifier.exe)

    在IT领域,Hash值是一种广泛使用的数据校验方式,它能够为任何大小的文件生成一个固定长度的唯一标识,这个标识通常称为哈希值或散列值。Hash值查看及修改软件,如"Hash_1.0.4_0523.exe"和"HashModifier.exe",是...

    hashcat-6.2.6(hash爆破工具)

    内容描述:用于crypto中hash爆破的强大工具。 优势:相较于其他hash工具,具有更快的算力,使用方便简洁。 适用:适用于md5,sha256等典型hash加密方式,反推出所需的源码。

    hdu题目分类

    从给定的信息来看,这是一份关于杭州电子科技大学(简称杭电)在线编程平台HDU Online Judge(简称HDOJ)的题目分类列表。这份列表为新手提供了按类别刷题的指南,帮助他们系统地提升算法和编程能力。下面,我们将...

    hashin失效vumat,hashin失效准则介绍,Fortran

    VUMAT提供了极大的灵活性,使得用户能够根据实际需求定制材料模型,包括引入新的失效准则,如Hashin失效准则。 在"hashinʧЧvumat.txt"这个文件中,很可能是详细介绍了如何在VUMAT子程序中实现Hashin失效准则的...

    HASH_hash_stm32hash_stm32hash表_stm32f407_

    STM32F407是意法半导体(STMicroelectronics)推出的一款基于ARM Cortex-M4内核的微控制器,广泛应用于各种嵌入式系统中。在STM32F407上实现的哈希(Hash)算法是数字签名、数据完整性验证等安全应用中的关键组成...

    hashin失效vumat_hashin破坏准则_vumatfailure_vumathashin失效_hashin_vumat

    在IT行业中,尤其是在模拟仿真和材料科学领域,Hashin失效准则是一种广泛应用的理论,用于预测多相复合材料的破坏行为。VUMAT(User-Defined Viscoplasticity and Damage Material Subroutine)是ABAQUS软件中的一个...

    GEOHASH Javascript的实现

    在JavaScript环境下实现`GEOHASH`,可以极大地优化地图索引和地理位置相关的数据处理,尤其在大数据量的情况下,其优势更为显著。本篇将详细介绍`GEOHASH`的基本原理,以及如何在JavaScript中实现这一技术。 首先,...

    HDU+2000-2099+解题报告.zip

    《杭电OnlineJudge 2000-2099解题报告》是针对杭州电子科技大学(HDU)在线评测系统(OnlineJudge)中2000至2099题目的详细解答集锦,主要涵盖了算法分析、编程技巧以及问题解决策略等内容。这份解题报告以CHM...

    Hash函数与消息认证

    5.1.3 Hash函数的迭代构造法 5.2 Hash函数MD5 5.2.1 MD5算法 5.2.2 MD5的安全性 5.3 安全Hash算法SHA-1 5.3.1 SHA-1算法步骤 5.3.2 SHA-1和MD5的比较 5.4 基于分组密码与离散对数的Hash函数 5.4.1 利用分组...

    C开源hash代码uthash

    uthash 是C的比较优秀的开源代码,它实现了常见的hash操作函数,例如查找、插入、删除等待。该套开源代码采用宏的方式实现hash函数的相关功能,支持C语言的任意数据结构最为key值,甚至可以采用多个值作为key,无论...

    HASHIN_hashin子程序_imagehashing_Fortran_ABAQUSvumat_

    标题中的"HASHIN_hashin子程序_imagehashing_Fortran_ABAQUSvumat_" 提到了几个关键概念:HASHIN子程序、imagehashing、Fortran编程语言以及ABAQUS的VUMAT(用户材料子程序)。这些元素共同构成了一个在ABAQUS环境下...

Global site tag (gtag.js) - Google Analytics