蒟蒻求助tle

P5020 [NOIP2018 提高组] 货币系统

@[萌面人](/space/show?uid=124700) ```k```的那一层是没有必要的 感觉你的背包写复杂了,其实只要这样就好了 ```cpp #include <cstdio> #include <algorithm> const int maxn = 107, maxa = 25207; int a[maxn], n, T; bool f[maxa]; int main() { scanf("%d", &T); while (T--) { scanf("%d", &n); for (int i = 1; i <= n; ++i) scanf("%d", a + i); std::sort(a + 1, a + n + 1); int ans = n; for (int i = 1; i <= n; ++i) { if (f[a[i]]) --ans; f[a[i]] = 1; for (int j = a[1]; j <= a[n]; ++j) if (j >= a[i]) f[j] |= f[j - a[i]]; } printf("%d\n", ans); for (int i = 1; i <= a[n]; ++i) f[i] = 0; } return 0; } ```
by GKxx @ 2019-01-29 11:51:09


@[GKxx](/space/show?uid=72071) 感谢大佬Orz
by Frost_Delay @ 2019-01-29 15:02:07


|