SPOJ ARCTAN (数论) Use of Function Arctan

详细的题解见这里

SPOJ ARCTAN (数论) Use of Function Arctan

图片转自上面的博客

假设我们已经推导出来x在SPOJ ARCTAN (数论) Use of Function Arctan处取得最小值,并且注意到这个点是位于两个整点之间的SPOJ ARCTAN (数论) Use of Function Arctan,所以从这两个整数往左右两边枚举b就能找到b+c的最小值。

其实只用往一边枚举就够了,由于对称性,我们不妨假设b ≤ c,那么只要让b从2a开始递减枚举即可。

 #include <iostream>
using namespace std;
long long a, i;
int main(){int T;cin>>T;while(T--){cin>>a;i=a*;while((i*i+)%(i-a))i--;cout<<(i*i+)/(i-a)<<endl;}return ;}

代码君

上一篇:mysqld_multi配置MySQL多实例


下一篇:Java课程02-动手动脑