社区讨论
P1016:第五个点WA,为什么啊(看到很多人问这个问题)
P1016[NOIP 1999 普及组/提高组] 旅行家的预算参与者 2已保存回复 5
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 5 条
- 当前快照
- 1 份
- 快照标识符
- @lo8aluqa
- 此快照首次捕获于
- 2023/10/27 15:29 2 年前
- 此快照最后确认于
- 2023/10/27 15:29 2 年前
CPP
#include <bits/stdc++.h>
using namespace std;
struct yz {
float md, mp;
}a[5000];
int main() {
float d, c, dl, p;
int n;
cin >> d >> c >> dl >> p >> n;
for (int i = 1; i <= n; i++) cin >> a[i].md >> a[i].mp;
a[0].md = 0;
a[0].mp = p;
a[n + 1].md = d;
a[n + 1].mp = 0;
float ans = 0, you = c;
for (int i = 1; i <= n + 1; i++) {
you -= (a[i].md - a[i - 1].md) / dl;
if (you < 0) {
cout << "No Solution";
return 0;
} else you = c;
}
int j;
for (int i = 0; i <= n; i=j) {
for (j = i + 1; j <= n + 1; j++) {
if (c * dl < a[j].md - a[i].md) {
j--;
break;
}
if (a[j].mp < a[i].mp)break;
}
ans += a[i].mp * ((a[j].md - a[i].md) / dl);
}
printf("%.2f",ans);
return 0;
}
回复
共 5 条回复,欢迎继续交流。
正在加载回复...