ACM题目————Equations
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 -4
1 1 1 1
Sample Output
39088
0
哈希只会一丢丢。就不写详解了。自己体会,O(∩_∩)O哈哈~
对于最后的结果要乘16,是因为,计算出来的结果可正可负,一共有 2^4 种情况
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | 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; } |
低调做人,高调做事。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理