这是代码:
#include <stdio.h>
long f[2801];
int main()
{
long i = 0, c = 2800, d = 0, e = 0, g = 0;
for (i = 0; i < c; ++i)
f[i] = 2000;
for (;;) {
d = 0;
g = c * 2;
if (!g)
break;
i = c;
for(;;) {
d += f[i] * 10000;
--g;
f[i] = d % g;
d /= g;
--g;
--i;
if (!i) break;
d *= i;
}
printf("%.4ld",e+d/10000);
e = …Run Code Online (Sandbox Code Playgroud) 我正在学习联合/查找结构的“带路径压缩的加权快速联合”算法。普林斯顿教育网站详细解释了该算法。\n下面是 Java 的实现:
\n\npublic class WQUPC {\n private int[] id;\n private int[] sz;\n public WQUPC(int N) {\n id = new int[N];\n sz = new int[N];\n for (int i = 0; i < N; i++) {\n id[i] = i;\n sz[i] = 1;\n }\n }\n\n int root(int i) {\n while (i != id[i]) {\n id[i] = id[id[i]];\n i = id[i];\n }\n return i;\n }\n\n boolean connected(int p, int q) { return root(p) == root(q); }\n\n void union(int p, int …Run Code Online (Sandbox Code Playgroud) algorithm time-complexity data-structures union-find iterated-logarithm