定理
1.Chicken McNugget Theorem:两个互质的数n,m。
x = a ∗ m + b ∗ n 。 a > = 0 , b > = 0 x=am+bn。a>=0,b>=0 x=a∗m+b∗n。a>=0,b>=0
其中不能构造的最大的数是 n ∗ m − n − m ,大于 n ∗ m − n − m 的数,都可以通过m和n构造出来。
2.计算矩形个数:n * (n + 1) * m * (m + 1) / 4
3.计算集合中任意两数之差的总和:
(需要递增排序)(求曼哈顿距离总和时可以用到)
for(int i = 2; i <= n; i ++)
{
ans += (i - 1) * (a[i] - a[i - 1]); //(i - 1)是指前面有多少个数, (a[i] - a[i - 1])是当前数减去后面一个数
}
如:x1,x2,x3,x4;
求和后为 (x4 - x1) + (x4 - x2) + (x4 - x3) == |x1 - x2| + |x1 - x3| + |x1- x4| + |x2 - x3| + |x2 - x4| + |x3 - x4|
4.计算数列中逆序对总数:n! / 2 * (数列中不同对儿数)
如全排列的逆序对数:n! / 2 * n * (n - 1) / 2
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步