HDU 1496 Equations
来源:互联网 发布:数学分析教材 知乎 编辑:程序博客网 时间:2024/04/30 15:20
Equations
Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 77 Accepted Submission(s): 51Problem 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.
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.
End of file.
Output
For each test case, output a single line containing the number of the solutions.
Sample Input
1 2 3 -41 1 1 1
Sample Output
390880
Author
题目大意:
给出方程的 abcd 求方程有几个解。
思路:
直接暴力显然是不行的 100 * 100 *100 * 100 直接炸。
hash 一下就可以了,注意 x 1 = 3 x2 = 4 和 x1 =4 x2=3 是不一样的,一开始我的思路是 左边两个hash 一下,右边 直接 find,但是这样会少好多结果。所以还是用最基本的想法。
最后 * 16 是因为 只考虑了 一半 负数和正数是一样的,
AC代码:
#include <iostream>#include <stdio.h>#include <algorithm>#include <memory.h>using namespace std;int f1[1000005]; int f2[1000005]; int main(){ int i, j, k, sum; int a, b, c, d; while(scanf("%d %d %d %d", &a, &b, &c, &d) != EOF) { if(a>0 && b>0 && c>0 && d>0 || a<0 && b<0 && c<0 && d<0) { printf("0\n"); continue; } memset(f1, 0, sizeof(f1)); memset(f2, 0, sizeof(f2)); for(i = 1; i <= 100; i++) { for(j = 1; j<= 100; j++) { k = a*i*i + b*j*j; if(k >= 0) f1[k]++; else f2[-k]++; } } sum = 0; for(i = 1; i <= 100; i++) { for(j = 1; j<= 100; j++) { k = c*i*i + d*j*j; if(k > 0) sum += f2[k]; else sum += f1[-k]; } } printf("%d\n", 16*sum); } return 0;}
0 0
- hdu 1496 -- Equations(哈希)
- HDU 1496 Equations (hash)
- HDU 1496 Equations
- HDU 1496 Equations
- hdu 1496 Equations 数论
- hdu 1496 Equations
- HDU 1496 Equations (hash)
- hdu 1496 -- Equations
- hdu 1496 Equations
- hdu 1496 Equations
- HDU 1496 Equations hash
- HDU 1496 Equations
- hdu 1496 Equations
- HDU 1496 Equations
- HDU 1496 Equations
- hdu 1496 Equations
- hdu 【1496】 Equations
- HDU 1496 Equations
- iOS 逆向工具篇(一) class-dump
- 欢迎使用CSDN-markdown编辑器
- Java 中关于Map的些许注意点
- Kylin问题解决 记录
- 微信小程序 数据绑定 条件循环
- HDU 1496 Equations
- 【数学专题】 卡特兰数
- 自定义View之onDraw
- react-native开发快捷键
- Sphinx2.1.9使用HTML文件作为索引源技术要点备忘
- JS垫脚石-判断浏览器版本
- split用法的坑
- 论文笔记 《What makes for effective detection proposals?》
- jQuery插件fontIconPicker配合FontAwesome字体图标库的使用