This commit is contained in:
HuangHai
2025-10-05 19:16:56 +08:00
parent 573c77674e
commit 88a4852812
3 changed files with 139 additions and 91 deletions

View File

@@ -1,7 +1,113 @@
## <20>Ŷӽ<C5B6>ˮ ## <20>Ŷӽ<C5B6>ˮ
### һ<><D2BB><EFBFBD><EFBFBD>ѧ֤<D1A7><D6A4>
### һ<><D2BB>ԭ<EFBFBD><D4AD>
https://www.luogu.com.cn/problem/P1190
P1190 [NOIP 2010 <20>ռ<EFBFBD><D5BC><EFBFBD>] <20><>ˮ<EFBFBD><CBAE><EFBFBD><EFBFBD>
```cpp {.line-numbers}
#include <bits/stdc++.h>
using namespace std;
const int MAX_N = 10010; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
const int MAX_M = 110; // <20><><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE>ͷ<EFBFBD><CDB7>
int n, m; // n: ͬѧ<CDAC><D1A7><EFBFBD><EFBFBD>, m: ˮ<><CBAE>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>
int w[MAX_N]; // ÿλͬѧ<CDAC>Ľ<EFBFBD>ˮ<EFBFBD><CBAE>
int taps[MAX_M]; // ÿ<><C3BF>ˮ<EFBFBD><CBAE>ͷ<EFBFBD>ĵ<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
int main() {
cin >> n >> m;
// ģ<><C4A3><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE><EFBFBD><EFBFBD>
for (int i = 0; i < n; i++) {
cin >> w[i];
// <20>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD>Ƚ<EFBFBD><C8BD><EFBFBD><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE>ͷ
int min_tap = 0;
for (int j = 1; j < m; j++)
if (taps[j] < taps[min_tap])
min_tap = j;
// <20><>i<EFBFBD><69>ͬѧ<CDAC>Ľ<EFBFBD>ˮ<EFBFBD><CBAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƚ<EFBFBD><C8BD><EFBFBD><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE>ͷ
taps[min_tap] += w[i];
}
// <20>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD>ʱ<EFBFBD><CAB1>
int result = 0;
for (int i = 0; i < m; i++)
result = max(result, taps[i]);
cout << result << endl;
return 0;
}
```
### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1
https://www.acwing.com/problem/content/description/444/
```cpp {.line-numbers}
#include <bits/stdc++.h>
using namespace std;
const int N = 10010, M = 200;
int n, m;
int w[N];
int q[M];
int main() {
cin >> n >> m;
for (int i = 0; i < n; i++) cin >> w[i];
for (int i = 0; i < n; i++) {
int t = 0;
for (int j = 0; j < m; j++) {
if (q[j] < q[t])
t = j;
}
q[t] += w[i];
}
int res = 0;
for (int i = 0; i < m;i++) res = max(res, q[i]);
cout << res << endl;
return 0;
}
```
### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><32>һ<EFBFBD><D2BB>ˮ<EFBFBD><CBAE>ͷǰ<CDB7>Ŷӽ<C5B6>ˮ<EFBFBD><CBAE>
https://www.acwing.com/problem/content/description/5945/
```cpp {.line-numbers}
#include <bits/stdc++.h>
using namespace std;
const int N = 1005;
struct Node {
int num;
int sum;
} a[N];
bool cmp(Node x, Node y) {
if (x.sum == y.sum)
return x.num < y.num;
return x.sum < y.sum;
}
int main() {
int n;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> a[i].sum;
a[i].num = i + 1;
}
sort(a, a + n, cmp);
double temp = 0.00;
for (int i = 0; i < n; i++) {
cout << a[i].num << " ";
temp += (n - (i + 1)) * a[i].sum;
}
cout << endl;
printf("%.2f", temp / n * 1.00);
return 0;
}
```
### <20>ġ<EFBFBD><C4A1><EFBFBD>ѧ֤<D1A7><D6A4>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ŵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>Ԫ<EFBFBD>أ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊʲô<EFBFBD>Ǵ<EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>أ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ŵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>Ԫ<EFBFBD>أ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊʲô<EFBFBD>Ǵ<EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>أ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD>Ŷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><EFBFBD><EFBFBD>Ǵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ó<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>Ŷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><EFBFBD><EFBFBD>Ǵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ó<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@ -23,93 +129,3 @@ $a_i$
<EFBFBD><EFBFBD><EFBFBD>ǵó<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ۣ<EFBFBD>**<2A><>$a_i$<24><>$b_i$ǰ<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>Сֵ**<2A><> <EFBFBD><EFBFBD><EFBFBD>ǵó<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ۣ<EFBFBD>**<2A><>$a_i$<24><>$b_i$ǰ<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>Сֵ**<2A><>
<EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><EFBFBD><EFBFBD>ôԽС<EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD>Խ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>ԽС<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><EFBFBD><EFBFBD>ôԽС<EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD>Խ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>ԽС<EFBFBD><EFBFBD>
### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
```cpp {.line-numbers}
#include <bits/stdc++.h>
using namespace std;
const int N = 10010, M = 200;
int n, m;
int w[N];
int q[M];
int main() {
cin >> n >> m;
for (int i = 0; i < n; i++)
cin >> w[i];
for (int i = 0; i < n; i++) {
// <20>ҳ<EFBFBD><D2B3><EFBFBD>Сֵ
int t = 0;
for (int j = 0; j < m; j++) {
if (q[j] < q[t])
t = j;
}
// <20><>i<EFBFBD><69>ͬѧ<CDAC><D1A7><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>t<EFBFBD><74>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
q[t] += w[i];
}
int res = 0;
for (int i = 0; i < m; i++)
res = max(res, q[i]); // <20>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>Ǵ<EFBFBD><C7B4><EFBFBD>
cout << res << endl;
return 0;
}
```
### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
**<2A><><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**
<EFBFBD><EFBFBD>$n$<24><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ˮ<EFBFBD><CBAE>ͷǰ<CDB7>Ŷӽ<C5B6>ˮ<EFBFBD><CBAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD>˽<EFBFBD>ˮ<EFBFBD><CBAE>ʱ<EFBFBD><CAB1>Ϊ$T_i$<24><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3><EFBFBD>$n$<24><><EFBFBD><EFBFBD><EFBFBD>Ŷӵ<C5B6>һ<EFBFBD><D2BB>˳<EFBFBD><CBB3><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>$n$<24><><EFBFBD>˵<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD>ȴ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>С<EFBFBD><D0A1>
**<2A><><EFBFBD><EFBFBD><EFBFBD>롿**
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>Ϊ$n(1<><31>n<EFBFBD><6E>1000)$<24><><EFBFBD>ڶ<EFBFBD><DAB6>зֱ<D0B7><D6B1><EFBFBD>ʾ<EFBFBD><CABE>$1$<24><><EFBFBD>˵<EFBFBD><CBB5><EFBFBD>$n$<24><><EFBFBD><EFBFBD>ÿ<EFBFBD>˵Ľ<CBB5>ˮʱ<CBAE><CAB1>$T_1<5F><31>T_2<5F><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>T_n$<24><>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>$1$<24><><EFBFBD>ո<EFBFBD><D5B8><EFBFBD>
**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>Ϊһ<EFBFBD><EFBFBD><EFBFBD>Ŷ<EFBFBD>˳<EFBFBD>򣬼<EFBFBD>$1$<24><>$n$<24><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3>ڶ<EFBFBD><DAB6><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>з<EFBFBD><D0B7><EFBFBD><EFBFBD>µ<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD>ȴ<EFBFBD>ʱ<EFBFBD><CAB1>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ)<29><>
**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**
```
10
56 12 1 99 1000 234 33 55 99 812
```
**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**
```
3 2 7 8 1 4 9 6 10 5
291.90
```
```
http://ybt.ssoier.cn:8088/problem_show.php?pid=1319
```
```cpp {.line-numbers}
#include <bits/stdc++.h>
using namespace std;
const int N = 1005;
struct Node {
int num;
int sum;
} a[N];
bool cmp(Node x, Node y) {
return x.sum < y.sum;
}
int main() {
int n;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> a[i].sum;
a[i].num = i + 1;
}
sort(a, a + n, cmp);
double temp = 0.00;
for (int i = 0; i < n; i++) {
cout << a[i].num << " ";
temp += (n - (i + 1)) * a[i].sum;
}
cout << endl;
printf("%.2f", temp / n * 1.00);
return 0;
}
```

View File

@@ -7,6 +7,8 @@ struct Node {
int sum; int sum;
} a[N]; } a[N];
bool cmp(Node x, Node y) { bool cmp(Node x, Node y) {
if (x.sum == y.sum)
return x.num < y.num;
return x.sum < y.sum; return x.sum < y.sum;
} }
int main() { int main() {

View File

@@ -0,0 +1,30 @@
#include <bits/stdc++.h>
using namespace std;
const int MAX_N = 10010; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
const int MAX_M = 110; // <20><><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE>ͷ<EFBFBD><CDB7>
int n, m; // n: ͬѧ<CDAC><D1A7><EFBFBD><EFBFBD>, m: ˮ<><CBAE>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>
int w[MAX_N]; // ÿλͬѧ<CDAC>Ľ<EFBFBD>ˮ<EFBFBD><CBAE>
int taps[MAX_M]; // ÿ<><C3BF>ˮ<EFBFBD><CBAE>ͷ<EFBFBD>ĵ<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
int main() {
cin >> n >> m;
// ģ<><C4A3><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE><EFBFBD><EFBFBD>
for (int i = 0; i < n; i++) {
cin >> w[i];
// <20>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD>Ƚ<EFBFBD><C8BD><EFBFBD><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE>ͷ
int min_tap = 0;
for (int j = 1; j < m; j++)
if (taps[j] < taps[min_tap])
min_tap = j;
// <20><>i<EFBFBD><69>ͬѧ<CDAC>Ľ<EFBFBD>ˮ<EFBFBD><CBAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƚ<EFBFBD><C8BD><EFBFBD><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE>ͷ
taps[min_tap] += w[i];
}
// <20>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD>ʱ<EFBFBD><CAB1>
int result = 0;
for (int i = 0; i < m; i++)
result = max(result, taps[i]);
cout << result << endl;
return 0;
}