icpc:problems:701c_floor_and_mod
目录
problems | |
---|---|
名称 | Floor and Mod |
题目编号 | 701C |
题目链接 | codeforces.com/… |
来源 | CodeForces |
算法分类 | 数学 |
难易程度 | 一般般 |
Floor and Mod
想法
数学题,没想法。看题解都晕。
我们可以注意到k是有范围的,所以表示k的范围。
然后啥都用b来表示。
我们其实就是找比k大的b的个数。
最后就是一个式子,推出来就好了…
代码实现
#include<cstdio>//uncle-lu 701 c #include<cmath> #include<algorithm> template<class T>void read(T &x) { x=0;int f=0;char ch=getchar(); while(ch<'0'||ch>'9') { f|=(ch=='-'); ch=getchar(); } while(ch<='9'&&ch>='0') { x=(x<<1)+(x<<3)+(ch^48); ch=getchar(); } x = f ? -x : x; return ; } int main() { int T, x, y; read(T); for (int t = 1; t <= T; t++) { read(x);read(y); long long int ans = 0; for (int k = 1; k <= sqrt(x); k++) ans += std::max(0, std::min(y, x/k - 1) - k); printf("%lld\n", ans); } return 0; }
/app/www/public/data/pages/icpc/problems/701c_floor_and_mod.txt · 最后更改: 2023/10/01 10:42 由 温婕莺