首页 > 其他 > 详细

P4132 [BJOI2012]算不出的等式

时间:2019-08-01 19:18:02      阅读:62      评论:0      收藏:0      [点我收藏+]

传送门

看到这个式子就感觉很有意思

左边就是求一次函数 $y=\left \lfloor \frac{q}{p} \right \rfloor x$ 在 $x \in [0,(p-1)/2]$ 时函数图像下方的整点数量

右边就是求一次函数 $y=\left \lfloor \frac{p}{q} \right \rfloor x$ 在 $x \in [0,(q-1)/2]$ 时函数图像下方的整点数量

把两个图画出来,发现图像刚好可以拼接成一个 $(p-1)/2\ \cdot\ (q-1)/2$ 的矩形,又因为 $p,q$ 互质所以两个图像在范围内不会经过整点

所以答案就是矩形中的整点数:$(p-1)/2\ \cdot\ (q-1)/2$ ?

但是还要考虑一下 $p=q$ 时的情况,此时还要再加上 $(p-1)/2$,加起来化简一下就是 $(pq-1)/4$

然后就行了

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<map>
using namespace std;
typedef long long ll;
typedef long double ldb;
inline int read()
{
    int x=0,f=1; char ch=getchar();
    while(ch<0||ch>9) { if(ch==-) f=-1; ch=getchar(); }
    while(ch>=0&&ch<=9) { x=(x<<1)+(x<<3)+(ch^48); ch=getchar(); }
    return x*f;
}
ll p,q;
int main()
{
    p=read(),q=read();
    printf("%lld\n",p==q ? (p*q-1)/4 : (p-1)/2*(q-1)/2);
    return 0;
}

 

P4132 [BJOI2012]算不出的等式

原文:https://www.cnblogs.com/LLTYYC/p/11284661.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!