docs: 添加仓库地址到README;chore: 整理实验分析;feat: Kruskal最小生成树与图存储结构

This commit is contained in:
2025-12-14 14:06:31 +08:00
parent be03307655
commit f2b8d1fe4c
52 changed files with 4600 additions and 291 deletions
+30
View File
@@ -0,0 +1,30 @@
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int n, m;
if (scanf("%d %d", &n, &m) != 2) return 0;
int *a = (int*)malloc((size_t)(n + 1) * sizeof(int));
for (int i = 1; i <= n; ++i) scanf("%d", &a[i]);
int *cnt = (int*)calloc((size_t)(m + 1), sizeof(int));
int covered = 0;
int l = 1;
int best_l = 1, best_r = n;
int best_len = n;
for (int r = 1; r <= n; ++r) {
int c = a[r];
if (cnt[c] == 0) ++covered;
++cnt[c];
if (covered == m) {
while (cnt[a[l]] > 1) { --cnt[a[l]]; ++l; }
int len = r - l + 1;
if (len < best_len || (len == best_len && l < best_l)) {
best_len = len; best_l = l; best_r = r;
}
}
}
printf("%d %d\n", best_l, best_r);
free(cnt);
free(a);
return 0;
}