题目大意
大小都为N的四个数组A[], B[], C[], D[]
, 从每个数组中分别选出一个数,a, b, c, d
, 使得 a + b + c + d = 0
,问有多少种选择方式。
题目分析
《挑战程序设计竞赛》P160例题。《挑战》通过这道题介绍了重要的思想方法,即“折半枚举”的方法,将问题一拆为二进行枚举。
枚举出A[i]+B[j]
的所有可能值和C[i]+D[j]
的所有可能值, 之后用二分查找互为相反数的两个值的组数即可。
source code
1 |
|
大小都为N的四个数组A[], B[], C[], D[]
, 从每个数组中分别选出一个数,a, b, c, d
, 使得 a + b + c + d = 0
,问有多少种选择方式。
《挑战程序设计竞赛》P160例题。《挑战》通过这道题介绍了重要的思想方法,即“折半枚举”的方法,将问题一拆为二进行枚举。
枚举出A[i]+B[j]
的所有可能值和C[i]+D[j]
的所有可能值, 之后用二分查找互为相反数的两个值的组数即可。
1 |
|
Last updated: