http://acm.hdu.edu.cn/showproblem.php?pid=2394

题目的大概意思就是,判断关于x的二次同余方程 a x^2 + b x + c = 0 ( mod 2 ^32 ) 是否有解

看到这道题目的时候刚好看了一些二次互反律之类的知识,思维被定向到了那边,又在网上找了一些资料,但是都不能解决此题(起码我没有想出来怎么办,大牛勿鄙视)。跟haozi讨论了一下,也没什么结果,后来haozi用java的大数把这题过了,我也不知道他怎么做的,他只说是很暴力的方法。今天在ACM_DIY群里请教了一下 UESTC 的 love8909 大牛,原来只要分来讨论 a b c 的奇偶性一共8种情况,比如:abc都是偶数,那么方程等价于 a/2 x^2 + b/2 x + c/2 = 0 ( mod 2 ^31 ), 通过讨论可以将mod的数降下来,一直到2^0为止,若能达到,必然有解,还有一些情况详见我代码:

hdu_2394