题意,给你a,b,c,d这4个数的值,然后问a*x1^2 + b*x2^2 +  c*x3^2 + d*x4^2 = 0

的(x1,x2,x3,x4)解一共有多少种?
  初看这题,想直接4次循环找,但是这样绝对超时,所以就用了hash这种方法来解决,很巧妙!分开两部分求和,若两部分的和是0,则就加上那么多种,最后乘以16。这样就能从n^4变成2*n^2,速度快了很多很多!!!
两层循环最多只可能产生10000个不同的结果,开200W的数组将会浪费很多初始化的时间,所以开小数组+处理冲突会比较好
链接:http://acm.hdu.edu.cn/showproblem.php?pid=1496
代码:
#include <bits/stdc++.h>using namespace std;const int maxn=1e6+10;
int f1[maxn],f2[maxn];
int a,b,c,d;int main()
{while(cin>>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(f1,0,sizeof(f1));memset(f2,0,sizeof(f2));int i,j;for(i=1;i<=100;i++){for(j=1;j<=100;j++){int k=a*i*i+b*j*j;if(k>=0) f1[k]++;else f2[-k]++;}}int sum=0;for(i=1;i<=100;i++){for(j=1;j<=100;j++){int k=c*i*i+d*j*j;if(k>0) sum+=f2[k];else sum+=f1[-k];}}cout<<16*sum<<endl;}return 0;
}

转载于:https://www.cnblogs.com/Fy1999/p/9355319.html

hdu 1496 Equations(技巧hash)相关推荐

  1. Hdu 1496 Equations

    Problem地址:http://acm.hdu.edu.cn/showproblem.php?pid=1496 此题可以用哈希数组求解,至于什么是哈希,可以先看以下这篇推荐文章,写得挺不错的. 推荐 ...

  2. Hdu 1496 Equations(巧妙哈希)

    题目链接 题目大意:给你一个方程:a*x1^2+b*x2^2+c*x3^2+d*x4^2=0,输入方程的4个系数,求出它的解的个数,其中系数 ai∈[-50,50]  xi∈[-100,0)∪(0,1 ...

  3. HDOJ1496 Equations【Hash】

    题目大意: 有一个等式, a*x1^2+b*x2^2+c*x3^2+d*x4^2=0, a.b.c.d是[-50,50]之间的非零整数, 有一组解析(x1,x2,x3,x4),其中xi是[-100,1 ...

  4. Equations HDU - 1496(哈希或三层for循环)求满足公式有多少种情况

    题意:求x在(-100<=x<=100)区间上,已知a,b,c,d,满足a*x1^2+b*x2^2+c*x3^2+d*x4^2=0 的情况有多少种 思路:很明显四层for循环肯定超时,可用 ...

  5. hdu 6396 Swordsman (技巧)

    大意: n个怪, m种能力值, 当自己所有能力值不低于某只怪时可以杀死它, 并获得它的所有能力, 求最大杀几只 将每只怪拆成$m$个, 排下序贪心即可, 复杂度$O(nm)$, 原题极其卡时间, 我的 ...

  6. hdu 1496 QQpet exploratory park 水概率dp

    题目 犯了个语言的错误: C语言中"%%"会输出一个"%" ,我在本地用1个"%"还是输出了"%". 代码: #incl ...

  7. 杭电OJ分类题目(1)

    原题出处:HDOJ Problem Index by Type,http://acm.hdu.edu.cn/typeclass.php 杭电OJ分类题目(1) HDU Introduction HDU ...

  8. word文档封面免费下载_为Word 2007文档添加封面

    word文档封面免费下载 I've been using Microsoft Word since 1985, starting with Word for Mac and eventually mo ...

  9. uva1152 - 4 Values whose Sum is 0(hash或STL技巧ac)

    题目大意:给定4个n(1 <= n <= 4000)元素集合A, B, C, D,要求分别从中选取一个元素a, b, c, d,使得a+b+c+d = 0,问有多少种选法. method ...

最新文章

  1. 复杂查询练习_《从零学会SQL:简单查询》第二关 简单查询
  2. c# 链接mongDB集群实战开发
  3. P1303 A*B Problem(python3实现)
  4. 双十一囤点知识干货!
  5. 什么是 Thrift(RPC)?一种接口描述语言和二进制通讯协议,用来定义和创建跨语言的服务
  6. 神spfa [Noi2014]魔法森林
  7. rem在响应式布局中的应用
  8. mysql从一个表中拷贝数据到另一个表中sql语句
  9. PMBus中的PAGE
  10. java编程详解 pdf_Java高并发编程详解:多线程与架构设计 高清pdf扫描版[154MB]
  11. 两直线平行交叉相乘_初中数学几何公式、定理梳理,太全了!老师都转发了!...
  12. 流量计算机标准,-流量计执行标准
  13. 打jar包和使用jar包
  14. 百度云服务器BCC中安装pycharm
  15. 经纬高坐标系转到东北天坐标系
  16. 未来避难所:漂浮的诺亚方舟宾馆可抵御洪流
  17. Web 图片引用之相对路径与绝对路径
  18. 关于医疗AI产品的商业模式的思考
  19. AnyConnect 安卓系统的使用教程
  20. html中图片不溢出,防止图片过大超出DIV的CSS样式

热门文章

  1. CentOS7安装Nagios并配置出图详解
  2. cocos2dx-CCScrollView的制作
  3. [模仿微软Live.cn]JavaScript输入邮箱自动提示
  4. 关于输入输出流的心得
  5. vi (vim) 常用命令
  6. 力控报警转储 mysql_力控ODBC转储说明.pdf
  7. c语言怎么写到单片机里,哪位师傅知道51单片机怎样编写子程序?C语言的。在主程序里调...
  8. 无主键的Hibernate配置
  9. C++中拼接一个包含整型等类型字符串的方法
  10. java sleep不能使用_java无主窗口GUI程序主线程不能调用sleep(long)方法,会产生异常...