为什么过不了样例?悬关求调

P1090 [NOIP2004 提高组] 合并果子 / [USACO06NOV] Fence Repair G

首先不考虑这个写法的可行性 ```cpp #include <bits/stdc++.h> using namespace std; int a[10010], n, sum = 0; int main() { cin >> n; for (int i = 1; i <= n; i++) cin >> a[i]; while (a[2] != 0) { sort(a + 1, a + 1 + n); a[1] = a[1] + a[2]; sum += a[1]; for (int i = 2; i <= n; i++) { if (i == n) { a[n] = 0; n--; } else a[i] = a[i + 1]; } } cout << sum; return 0; } ``` n-- 写在后面,sum也不需要+a[1] ,因为只需要合并n-1次 另外这个算法复杂度是时间复杂度 $\Theta( n^2\log n)$ 一定不能通过这题
by Dog_E @ 2024-03-22 11:17:53


|