HDU 1496 Equations
2015-07-31 18:44
309 查看
Equations
Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 6441 Accepted Submission(s): 2603
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
Author
LL
Source
“2006校园文化活动月”之“校庆杯”大学生程序设计竞赛暨杭州电子科技大学第四届大学生程序设计竞赛
Recommend
LL | We have carefully selected several similar problems for you: 1425 1280 1800 1264 2600
分析:
题意简单(类似“百钱买百鸡”问题)
传统方法是(几重循环)?复杂度?
上述方法如何判断两端相等?(查找?)
可行方案(两重循环+Hash存储查找)
Hash表大小?
Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 6441 Accepted Submission(s): 2603
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
Author
LL
Source
“2006校园文化活动月”之“校庆杯”大学生程序设计竞赛暨杭州电子科技大学第四届大学生程序设计竞赛
Recommend
LL | We have carefully selected several similar problems for you: 1425 1280 1800 1264 2600
分析:
题意简单(类似“百钱买百鸡”问题)
传统方法是(几重循环)?复杂度?
上述方法如何判断两端相等?(查找?)
可行方案(两重循环+Hash存储查找)
Hash表大小?
#include <iostream> #include <sstream> #include <iomanip> #include <vector> #include <deque> #include <list> #include <set> #include <map> #include <stack> #include <queue> #include <bitset> #include <string> #include <numeric> #include <algorithm> #include <functional> #include <iterator> #include <cstdio> #include <cstring> #include <cmath> #include <cstdlib> #include <cctype> #include <complex> #include <ctime> typedef long long LL; const double pi = acos(-1.0); const long long mod = 1e9 + 7; using namespace std; int x[2000005]; int main() { 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) ) { puts("0"); continue; } memset(x,0,sizeof(x)); for(int i = 1;i <= 100;i++) for(int j = 1;j <= 100;j++) x[a * i * i + b * j * j + 1000000]++; int sum = 0; for(int i = 1;i <= 100;i++) for(int j = 1;j <= 100;j++) sum += x[ - c * i * i - d * j * j + 1000000]; printf("%d\n",sum * 16); } return 0; }
相关文章推荐
- ListView-添加head跟foot item 问题
- PHP创建图片、绘制图片、并将图片输出到页面上
- form元素认证
- 解决linux环境mysql中文乱码问题
- 计蒜客---判断日期是否符合格式
- EasyUI----DataTable转拼EasyUI Tree
- hdu 5224 Tom and Paper
- argc, argv 你真的理解了吗?
- stm32处理器调试模式下运行正常,上电自启动后运行不正常的故障排查分析
- 苹果开发 笔记(55)NSURLConnection
- HDOJ1024(最大M子段和)
- web发布基础知识
- How Many Tables-并查集
- 编程过程分析(hdu 4515为例)
- Android studio 安装中遇到一些问题的解决办法,分享一下
- Libevent中英文文档地址
- delete和delete[]的区别
- nyoj 710 外星人的供给站【贪心区间选点】
- java中的sleep()和wait()的区别
- 《R语言实战》读书笔记--为什么要学