寒武纪测试赛1C中,如何巧妙运用取模和整除性质解决经典问题?

2026-04-02 12:510阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计713个文字,预计阅读时间需要3分钟。

寒武纪测试赛1C中,如何巧妙运用取模和整除性质解决经典问题?

问题:对于一对数(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题面

寒武纪测试赛1C中,如何巧妙运用取模和整除性质解决经典问题?

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分钟。

寒武纪测试赛1C中,如何巧妙运用取模和整除性质解决经典问题?

问题:对于一对数(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题面

寒武纪测试赛1C中,如何巧妙运用取模和整除性质解决经典问题?

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

阅读全文
标签:性质经典