首页 > 代码库 > [Beijing wc2012]算不出的算式

[Beijing wc2012]算不出的算式

OJ题号:BZOJ2659

思路:数学。

建立平面直角坐标系。在第一象限作直线y=qx/p,易得Σ[kq/p]即为当x<(p/2)时,直线下方(包括直线)的整点数;Σ[kp/q]为当y<(q/2)时,直线上方(包括直线)的整点数。因此答案即为(p-1)*(q-1)/4。注意当p==q时,要将直线上的点算两遍。

1 #include<cstdio>2 int main() {3     long long p,q;4     scanf("%lld%lld",&p,&q);5     printf("%lld\n",(p==q)?((p*p-1)>>2):(((p-1)*(q-1))>>2));6     return 0;7 }

 

[Beijing wc2012]算不出的算式