社区讨论
高消20pts玄关求条
P3265[JLOI2015] 装备购买参与者 3已保存回复 5
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 5 条
- 当前快照
- 1 份
- 快照标识符
- @mm30rtuz
- 此快照首次捕获于
- 2026/02/26 13:25 上周
- 此快照最后确认于
- 2026/02/27 18:05 上周
感觉和lyd的思路一样。But只有20pts。
CPP#include <bits/stdc++.h>
using namespace std;
const int N = 510;
const double eps = 1e-4;
struct Info {
double a[N];
int v;
} b[N];
int n, m, t, cnt, ans;
inline void Gauss() {
t = n;
for (int i = 1; i <= n; i++) {
for (int j = i + 1; j <= n; j++) if (fabs(b[j].a[i]) > eps && b[j].v < b[i].v)
swap(b[i], b[j]);
if (fabs(b[i].a[i]) < eps) {
t = i - 1;
break;
}
for (int j = 1; j <= n; j++) if (j != i) {
double rate = b[j].a[i] / b[i].a[i];
for (int k = i; k <= m; k++)
b[j].a[k] -= rate * b[i].a[k];
}
}
for (int i = 1; i <= t; i++)
ans += b[i].v;
}
int main() {
scanf("%d%d", &n, &m);
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++)
scanf("%lf", &b[i].a[j]);
for (int i = 1; i <= n; i++)
scanf("%d", &b[i].v);
Gauss();
printf("%d %d\n", t, ans);
return 0;
}
回复
共 5 条回复,欢迎继续交流。
正在加载回复...