寒武纪测试赛1C中,如何巧妙运用取模和整除性质解决经典问题?
- 内容介绍
- 文章标签
- 相关推荐
本文共计713个文字,预计阅读时间需要3分钟。
问题:对于一对数(a,b),如果满足a大于b,那么这个数对被称为“好的数对。例如,如果a的n次方大于b的n次方,那么这对数是好的数对。问题:对于一对数(a,b),如果满足a除以b,那么这个数对被称为好的数对。”
problem对于一个数对(a,b)如果满足a%bab则称这个数对为“好的数对”。如果a⩽n,b⩽n那么有多少对数对是“好的数对”problem
对于一个数对(a,b) 如果满足a%ba/b则称这个数对为“好的数对”。 如果 a⩽n,b⩽n那么有多少对数对是“好的数对”呢
1⩽n⩽1e9
pdf题面
Sample Input
5
8
3
65
Sample Output
3
7
1
131
思路1
表面意思 ∑na1∑nb1[a%ba/b] 这里a/b⌊ab⌋
由于aab∗ba%b 可得a(a%b)∗(b1) 那我只要枚举a和它的因子d,凡是满足a=(a%(d−1))∗d 的因子d,d−1即为对应的b。时间复杂度O(nlogn)会TLE
令ta%b 显然t
。
本文共计713个文字,预计阅读时间需要3分钟。
问题:对于一对数(a,b),如果满足a大于b,那么这个数对被称为“好的数对。例如,如果a的n次方大于b的n次方,那么这对数是好的数对。问题:对于一对数(a,b),如果满足a除以b,那么这个数对被称为好的数对。”
problem对于一个数对(a,b)如果满足a%bab则称这个数对为“好的数对”。如果a⩽n,b⩽n那么有多少对数对是“好的数对”problem
对于一个数对(a,b) 如果满足a%ba/b则称这个数对为“好的数对”。 如果 a⩽n,b⩽n那么有多少对数对是“好的数对”呢
1⩽n⩽1e9
pdf题面
Sample Input
5
8
3
65
Sample Output
3
7
1
131
思路1
表面意思 ∑na1∑nb1[a%ba/b] 这里a/b⌊ab⌋
由于aab∗ba%b 可得a(a%b)∗(b1) 那我只要枚举a和它的因子d,凡是满足a=(a%(d−1))∗d 的因子d,d−1即为对应的b。时间复杂度O(nlogn)会TLE
令ta%b 显然t
。

