3 条题解
-
0
Guest
-
1
神人T2赛时卡我20分钟,写题解卡我20分钟。
很简单,用容斥原理,分别计算 和 以及 在 的倍数数量(记为),然后答案为:
温馨提醒:
- 不开
long long
见祖宗; - 没判断是否是倍数(也就是代码的
a-1
写成a
的)会很惨。
#include <bits/stdc++.h> using namespace std; long long a,b,c,d; long long lcm(long long a,long long b){ return a/__gcd(a,b)*b; } int main(){ cin>>a>>b>>c>>d; long long c_lcm=b/c-((a-1)/c); long long d_lcm=b/d-((a-1)/d); long long cd_lcm=b/(lcm(c,d))-((a-1)/lcm(c,d)); cout<<b-a-c_lcm-d_lcm+cd_lcm+1; return 0; }
- 不开
- 1
信息
- ID
- 899
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- (无)
- 递交数
- 48
- 已通过
- 12
- 上传者